Dico

SQL Date Functions

  • 민갤

날짜 함수

SYSDATE

시스템의 현재 날짜를 반환한다.

SELECT sysdate - 1 어제
    , sysdate 오늘
    , sysdate + 1 내일
 FROM dual;

CURRENT_DATE

ALTER SESSION 명령으로 설정된 SQL 세션의 현재 시간을 반환한다.

SELECT CURRENT_DATE - 1 어제
    , CURRENT_DATE 오늘
    , CURRENT_DATE + 1 내일
 FROM dual;

ADD_MONTHS

지정된 개월 수가 추가된 날짜를 반환한다.

ADD_MONTHS(date, number)
SELECT hire_date 입사일
    , ADD_MONTHS(hire_date, 3) "입사3개월"
 FROM employees;

MONTHS_BETWEEN

두 날짜 사이의 개월 수를 반환한다.

MONTHS_BETWEEN(date1, date2)
SELECT TRUNC(MONTHS_BETWEEN(sysdate, hire_date))
 FROM employees;

NEXT_DAY

해당 날짜에서 지정한 요일과 가장 가까운 날짜를 반환한다.

NEXT_DAY(date, 'format'|number)
SELECT sysdate   --17/10/26
    , NEXT_DAY(sysdate, '금요일')  --17/10/27
    , NEXT_DAY(sysdate, 6)         --17/10/27
 FROM dual;

LAST_DAY

해당 달의 마지막 날짜를 반환한다.

윤달 표기에 효율적이다.

LAST_DAY(date)
SELECT hire_date
    , LAST_DAY(hire_date)
 FROM employees;

ROUND

특정 기준으로 반올림한 날짜를 반환한다.

ROUND(date, 'format')

  • MONTH : 일을 기준으로 16보다 적으면 이달 1일, 16이상이면 다음달 1일
SELECT ROUND(hire_date, 'MONTH')
 FROM employees;

TRUNC

특정 기준으로 자른 날짜를 반환한다.

TRUNC(date, 'format')

  • MONTH : 달을 기준으로 자른다. 그 달의 1일
SELECT TRUNC(hire_date, 'MONTH')
 FROM employees;