6.2.3 날짜형 함수
날짜형 함수는 날짜, 즉 데이터형이 DATE나 TIMESTAMP인 데이터를 대상으로 연산을 수행하는 함수를 말합니다. 가령 특정 일을 기준으로 한 달 후의 일자를 구하거나 해당 월의 마지막 일자를 구하는 함수입니다. 대표적인 날짜형 함수는 다음과 같습니다.
▼ 표 6-5 날짜형 함수
함수 명 |
기능 |
사용 예 |
SYSDATE |
현재 일자와 시간을 반환 |
SELECT SYSDATE FROM DUAL; → 2019-04-08 (날짜와 시간 정보를 모두 포함하고 있음. 시간까지 보려면 TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS')로 변환 필요) |
ADD_MONTHS ( date, n ) |
date 날짜에 n개월을 더한 날짜를 반환. n이 음수이면 더하지 않고 뺀 날짜를 반환 |
SELECT ADD_MONTHS( SYSDATE, 1 ) FROM DUAL; → 2019-05-08 |
MONTHS_BETWEEN ( date1, date2 ) |
date1과 date2 두 날짜 사이의 개월 수를 반환. date1이 date2보다 이후 날짜면 양수, 반대면 음수 반환 |
SELECT MONTHS_BETWEEN( SYSDATE + 31, SYSDATE ) FROM DUAL; → 1.096…. |
LAST_DAY( date ) |
date가 속한 월의 마지막 일자를 반환 |
SELECT LAST_DAY( SYSDATE ) FROM DUAL; → 2019-04-30 |
NEXT_DAY ( date, expr ) |
date 날짜를 기준으로 expr에 명시한 날짜 반환. expr은 요일을 나타내는데, ‘월요일’ 형태로 쓸 수도 있고 1~7까지 숫자를 쓸 수도 있음(1은 일요일, 7은 토요일) |
SELECT NEXT_DAY( SYSDATE, '월요일' ) FROM DUAL; → 2019-04-15 |
ROUND ( date, format ) |
date를 format 기준으로 반올림한 날짜 반환. format은 YEAR, MONTH, DD, HH, HH24, MI 등 사용 가능 |
SELECT ROUND( SYSDATE, 'YEAR' ) FROM DUAL; → 2019-01-01 |
TRUNC ( date, format ) |
date를 format 기준으로 잘라낸 날짜 반환. format은 ROUND 함수와 동일하게 사용 가능 |
SELECT TRUNC( SYSDATE, 'YEAR' ) FROM DUAL; → 2019-01-01 |