SQL/Oracle

[Oracle] INTERVAL 함수

Unlimited Jun 2023. 11. 15. 19:26

작성일자 : 2023-11-15

Ver 0.1.1

0.Intro

Oracle의 날짜 DATE 컬럼에서 월을 더하고 뺄때 ADD_MONTHS() 내장 함수를 사용하기도 한다.

그렇지만, Year, Day, Hour, Minute, Second를 더하고 빼고자할 때는 ADD_MONTH로는 Year를 빼고는 제한된다.

이런 경우 INTERVAL 이용하면 보다 직관적이고 쉽게 날짜를 컨트롤 있다.


1.How to

SELECT TO_DATE('2023-11-15','YYYY-MM-DD') AS TIME
      ,TO_DATE('2023-11-15','YYYY-MM-DD') + INTERVAL '10' YEAR(2) AS "10 Years Later"
      ,TO_DATE('2023-11-15','YYYY-MM-DD') + INTERVAL '-5' YEAR(2) AS "5 Years Before"
      ,TO_DATE('2023-11-15','YYYY-MM-DD') + INTERVAL '8' MONTH(2) AS "8 Months Later"
      ,TO_DATE('2023-11-15','YYYY-MM-DD') + INTERVAL '-12' MONTH(2) AS "12 Months Before"
      ,TO_DATE('2023-11-15','YYYY-MM-DD') + INTERVAL '14' DAY(2) AS "14 Days Later"
      ,TO_DATE('2023-11-15','YYYY-MM-DD') + INTERVAL '-20' DAY(2) AS "20 Days Before"
      ,SYSDATE + (INTERVAL '03:30' HOUR TO MINUTE) AS "Add 3 hour 3 minutes"
      ,SYSDATE + (INTERVAL '10:30' MINUTE TO SECOND) AS "Add 10 minutes 30 Seconds"
      ,SYSDATE + (INTERVAL '1-1' YEAR TO MONTH) AS "Add 1 year 1 month"
FROM DUAL;