더북(TheBook)

6.2.3 날짜형 함수

날짜형 함수는 날짜, 즉 데이터형이 DATETIMESTAMP인 데이터를 대상으로 연산을 수행하는 함수를 말합니다. 가령 특정 일을 기준으로 한 달 후의 일자를 구하거나 해당 월의 마지막 일자를 구하는 함수입니다. 대표적인 날짜형 함수는 다음과 같습니다.

▼ 표 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 )

date1date2 두 날짜 사이의 개월 수를 반환. date1date2보다 이후 날짜면 양수, 반대면 음수 반환

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 )

dateformat 기준으로 반올림한 날짜 반환. formatYEAR, MONTH, DD, HH, HH24, MI 등 사용 가능

SELECT ROUND( SYSDATE, 'YEAR' )

FROM DUAL;

→ 2019-01-01

TRUNC

( date, format )

dateformat 기준으로 잘라낸 날짜 반환. formatROUND 함수와 동일하게 사용 가능

SELECT TRUNC( SYSDATE, 'YEAR' )

FROM DUAL;

→ 2019-01-01

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.