mun dev

[Oracle] 날짜형 함수 모음 (ADD_MONTH, LAST_DAY..) 본문

DB/Oracle

[Oracle] 날짜형 함수 모음 (ADD_MONTH, LAST_DAY..)

mndev 2024. 1. 31. 15:31

SYSDATE

  • 현재 일자와 시간을 반환
SELECT SYSDATE
FROM DUAL;

--> 2024-01-17
-- (날짜와 시간 정보를 모두 포함하고 있음
-- 시간까지 보려면 TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI: SS')로 
-- 변환 필요)

ADD_MONTH(date, n)

  • date날짜에 n개월을 더한 날짜를 반환 n이 음수이면 더하지 않고 뺀 날짜를 반환
SELECT ADD_MONTH(SYSDATE, 1)
FROM DUAL;

--> 2024-02-17

MONTHS_BETWEEN(date1, date2)

  • date1과 date2 두 날짜 사이의 개월 수를 반환, date1이 date2 두 날짜 사이의 개월 수를 반환, date1이 date2보다 이후 날짜면 양수, 반대면 음수 반환
SELECT MONTHS_BETWEEN(SYSDATE + 1, SYSDATE)
FROM DUAL;

--> 1.096..

LAST_DAY(date)

  • date가 속한월의 마지막 일자를 반환
SELECT LAST_DAY(SYSDATE,)
FROM DUAL;

--> 2024-02-29

NEXT_DAY(date, expr)

  • date날짜를 기준으로 expr에 명시한 날짜 반환. expr은 요일을 나타내는데 월요일 형태로 쓸 수도 있고 1~7까지 숫자를 쓸 수도 있음(1은 일요일, 7은 토요일)
SELECT NEXT_DAY(SYSDATE, '월요일')
FROM DUAL;

--> 2024-01-22

ROUND(date, format)

  • date를 format기준으로 반올림한 날짜 반환, format은 year, month, dd, hh, hh24, mi등 사용가능
SELECT ROUND(SYSDATE, 'YEAR')
FROM DUAL;

--> 2024-01-01

TRUNC(date, format)

  • date를 format 기준으로 잘라낸 날짜 반환, format은 ROUND함수와 동일하게 사용 가능
SELECT ADD_MONTH(SYSDATE, 1)
FROM DUAL;

--> 2024-02-17