③ MONTHS_BETWEEN(date1, date2)
MONTHS_BETWEEN 함수는 두 날짜 사이의 개월 수를 반환하는데, date2가 date1보다 빠른 날짜가 온다.
입력
SELECT MONTHS_BETWEEN(SYSDATE, ADD_MONTHS(SYSDATE, 1)) mon1,
MONTHS_BETWEEN(ADD_MONTHS(SYSDATE, 1), SYSDATE) mon2
FROM DUAL;
결과
MON1 MON2
-------- -------
-1 1
④ LAST_DAY(date)
LAST_DAY는 date 날짜를 기준으로 해당 월의 마지막 일자를 반환한다.
입력
SELECT LAST_DAY(SYSDATE)
FROM DUAL;
결과
LAST_DAY(SYSDATE)
------------------------
2015-03-31 22:11:24
⑤ ROUND(date, format), TRUNC(date, format)
ROUND와 TRUNC는 숫자 함수이면서 날짜 함수로도 쓰이는데, ROUND는 format에 따라 반올림한 날짜를, TRUNC는 잘라낸 날짜를 반환한다.
입력
SELECT SYSDATE, ROUND(SYSDATE, 'month'), TRUNC(SYSDATE, 'month')
FROM DUAL;
결과
SYSDATE ROUND(SYSDATE,'MONTH') TRUNC(SYSDATE,'MONTH')
------------------- ---------------------- ----------------------
2015-03-16 22:11:51 2015-04-01 00:00:00 2015-03-01 00:00:00
ROUND 함수에서 보면 현재가 16일이므로 월(MONTH) 기준으로 반올림하면 다음 달로 넘어가 4월 1일이 되었다. 반면 TRUNC에서는 무조건 월을 기준으로 잘라내므로 3월 1일이 된 것이다. ROUND나 TRUNC나 숫자 함수에서 배웠던 것처럼 반올림과 잘라내기 기능을 하는데 매개변수가 날짜이면 해당 날짜를 반올림하고 잘라낸 결과를 반환한다.
⑥ NEXT_DAY (date, char)
NEXT_DAY는 date를 char에 명시한 날짜로 다음 주 주중 일자를 반환한다.
입력
SELECT NEXT_DAY(SYSDATE, '금요일')
FROM DUAL;
결과
NEXT_DAY(SYSDATE,'금요일')
--------------------------------
2015-03-20 22:16:20
char로 올 수 있는 값은 ‘일요일’에서 ‘토요일’까지인데, 이 값은 NLS_LANG이란 오라클 환경 변수에 따라 한글이 올 수도, ‘SUNDAY’, ‘MONDAY’ 처럼 영문이 올 수도 있다.