1. 기본 날짜 연산
기본 날짜 계산
- 오라클 데이터 베이스는 세기, 연도, 월, 일, 시, 분, 초 형태이 내부 숫자 형식으로 날짜를 저장함
- 기본 Data Format 설정에 따라 화면에 표시됨
- 날짜 표시 Format을 변경 하고 싶은 경우 다음 명령을 사용한다.
alter session set nls_date_format = 'yyyy-mm-dd:hh24:mi:ss'; (sql Developer은 해당 명령을 통해 바꿔 줄수 있다.) (yyyy: 년, mm: 월, dd:일, hh: 시간 24는 24시간으로 표시하겠다. ss: 초 ) |
- 날짜에 숫자를 더하거나 빼서 날짜 값을 계산 할 수 있음
- 날짜형 데이터 간 뺄셈을 수행 할 수 있음
함수 | 내용 |
DATE + NUMBER | 날짜에 해당 일수를 더한 날짜를 리턴 |
DATE - NUMBER | 날짜에 해당 일수를 뺀 날짜를 리턴 |
DATE1-DATE2 | 두 날짜 사이의 경과 일수를 숫자로 리턴 |
SYSDATE: 오늘날짜 현재 시간을 알려줌.
SYSDATE + 1 : 하루단위로계산
SYSDATE + 1/24 : 한시간 만 더해
SYSDATE + 1/24/60 : 1분만 더해
SYSDATE + 1/24/60 /60 : 1초만 더해
emp 줄마다 (오늘 날짜,시간)을 찍어주는데, 테이블의 데이터개수만큼 찍어준다.
이때 간단하게 한개만 정보조회할때 dual테이블 조회
컴퓨터에 등록된오늘날짜 현재시간 정보를 가져옵니다.
회사에서는 회사 서버의 정보 기준으로 오늘날짜 현재시간 정보를 가져온다.
날짜와 날짜사이의 결과 를 빼주면, 두날짜 사이의 경과 일수 알 수 있다.
날짜에서 날짜를 더하면 에러 발생!
2. 날짜 함수 사용하기
날짜 함수
함수 | 내용 |
ADD_MONTHS(D1, N) | D1날짜에 N개월 더함 |
MONTHS_BETWEEN(D1, D2) | D1, D2두 날짜 간의 경과 개월 수 |
LAST_DAY | 해당 월의 마지막 날짜를 리턴 |
ROUND | 날짜를 년, 월 단위로 반올림 |
TRUNC | 날짜를 년, 월, 단위로 버림 |
- MM은 일자가 15일 기준으로 15일까지는 이번달, 15일 이후는 다음달로 넘겨서 표시된다.
- YY는 월기준 이다. 1월~6월 까지는 올해년도 7월~12월 은 내년으로 처리된다.
약간의 오차가 발생한다 (윤년이 존재)이럴때 오차없이 더하고 싶을때 사용하는 함수 : add_months
1.몇 년 일했는지 알고 싶을때 오늘 날짜에서 입사일 빼주기
2.월표시를 /12 를 통해 보면 36년 근무했다는 것을 확인 할 수 있다.
3.이때 소수점 뒷자리를 보고싶지 않을 때 Trunc함수를 사용해주면 됩니다.
3번 결과 확인
해당 월의 마지막 날짜 알고 싶을 때 :LAST_DAY 함수 사용한 예
뒤에 시분초만 초기화해서 쓰고 싶을때 날짜함수에 Trunc 함수 사용 하여 초기화되어 사용 할 수 있습니다.
월까지만 두고 뒤에 다 버리기 즉 일자부터 다 지우기
년까지만 표시하고 다 초기화 하고 싶으면 'mm' -> 'YY'
EXTRACT 함수
날짜에서 지정한 날짜 필드 값을 추출하여 반환함
- 선수들 이름, 생일 날짜, 생일 날짜에서 년도, 월, 일자만 추출해서 조회
결과 1 : 생일인 날짜에서 년만 뽑겠습니다.
결과 2 : 생일인 날짜에서 나는 월만 뽑겠습니다.
결과 3 : 생일인 날짜에서 나는 일자만 뽑겠습니다.
Interval 함수
날짜에서 지정한 날짜 필드 값을 더하거나 뺄 수 있음
두시간 3분 증가한 시간을 조회 하고 싶을때
만약 hour 자리->minute을 넣어주고, minute 자리-> second를 넣어주면 2분 3초 후의 결과를 확인 할 수 있습니다.
'데이터베이스 > 기초 SQL 입문' 카테고리의 다른 글
일반 함수 (0) | 2020.09.13 |
---|---|
변환 함수 (0) | 2020.09.13 |
문자 숫자 함수 (0) | 2020.09.06 |
복합조건 지정 및 데이터 정렬 (0) | 2020.09.06 |
SQL문 작성 규칙 및 SELECT사용법 (0) | 2020.09.01 |