오라클SQL 날짜 연산 및 날짜 함수
Updated:
날짜 연산 및 날짜 함수
학습 주제
- 기본 날짜 연산
- 날짜함수 사용하기
학습 목표
- 날짜데이터를 이용한 계산작업을 수행할 수 있다.
- 날짜함수를 이용한 데이터 처리작업을 할 수 있다.
기본 날짜 연산
-
오라클 데이터베이스는 세기, 연도, 월, 일, 시, 분, 초 형태의 내부 숫자 형식으로 날짜를 저장한다.
-
기본 Data Format 설정에 따라 화면에 표시된다.
-
날짜표시 Format을 변경하고 싶은 경우 다음 명령을 사용한다.
alter session set nls_data_format = ‘yyyy-mm-dd:hh24:mi:ss’;
- 날짜에 숫자를 더하거나 빼서 날짜 값을 계산할 수 있다.
- 날짜형 데이터 간 뺄셈을 수행할 수 있다.
함수 | 내용 |
---|---|
DATE + NUMBER | 날짜에 해당 일수를 더한 날짜를 반환한다. |
DATE - NUMBER | 날짜에 해당 일수를 뺀 날짜를 반환한다. |
DATE1 - DATE2 | 두 날짜 사이의 경과 일수를 숫자로 반환한다. |
예시
SELECT player_name, birth_date, birth_data + 1000 FROM player; -- 날, 시, 분, 초로 계산할 수 있음 SELECT SYSDATE, SYSDATE + 1 결과1, SYSDATE+1/24 결과2, SYSDATE + 1/24/60/60 결과3 FROM dual; SELECT player_name,birth_date, sysdate - birth_date FROM player;
날짜 함수
함수 | 내용 |
---|---|
ADD_MONTHS(D1, N) | D1날짜에 N 개월 더한다. |
MONTHS_BETWEEN(D1, D2) | D1, D2 두 날짜 간의 경과 개월 수를 반환한다. |
LAST_DAY | 해당 월의 마지막 날짜를 반환한다. |
ROUND | 날짜를 년, 월 단위로 반올림한다. |
TRUNC | 날짜를 년, 월 단위로 버림한다. |
예시
SELECT player_name, birth_date, ROUND(birth_date, 'MM') 결과1, ROUND(birth_date, 'YY') 결과2 FROM player WHERE position = 'GK'; /* month는 15일 전후로 내림/올림 year는 6월 기준으로 내림/올림 */ SELECT player_name, birth_date, TRUNC(birth_date, 'MM') 결과1, TRUNC(birth_date, 'YY') 결과2 FROM player WHERE position = 'GK';
EXTRACT
- 날짜에서 지정한 날짜 필드값을 추출하여 반환함.
예시
SELECT player_name, birth_date, EXTRACT(year FROM birth_date) 결과1, EXTRACT(month FROM birth_date) 결과2, EXTRACT(day FROM birth_date) 결과3 FROM player WHERE player_name like '가%';
Interval
-
날짜에서 지정한 날짜 필드 값을 더하거나 뺄 수 있다.
-
Interval 사용 예시
날짜 + (INTERVAL ‘1’ YEAR) —————-1년 더하기
날짜 + (INTERVAL ‘1’ MONTH) ————1개월 더하기
날짜 + (INTERVAL ‘1’ DAY) ——————1일 더하기
날짜 + (INTERVAL ‘1’ HOUR) —————1시간 더하기
날짜 + (INTERVAL ‘1’ MINUTE) ————1분 더하기
날짜 + (INTERVAL ‘1’ SECOND) ———–1초 더하기
날짜 + (INTERVAL ‘02:10’ HOUR TO MINUTE) — 2시간 10분 더하기
날짜 + (INTERVAL ‘01:30’ MINUTE TO SECOND) — 1분 30초 더하기
Comments