IT/DBMS

[Oracle] N개월후까지 날짜 구하기 (feat. Connect by level)

알 수 없는 사용자 2023. 12. 3. 16:16
반응형

12월부터 내년3월까지 날짜 조회

WITH calendar AS (
    SELECT TO_CHAR(TO_DATE('20231201') + LEVEL - 1, 'YYYYMMDD') AS dt
    FROM dual
    CONNECT BY LEVEL <= ADD_MONTHS(TO_DATE('20231201'), 4) - TO_DATE('20231201')
)
SELECT * FROM calendar
;

오라클의 Connect by level을 이용해서 날짜를 구할 수 있는데 특정날짜로부터 4개월 지난시점까지의 년월일을 구할 수 있다.위 쿼리는 12월1일 기준으로 4개월 후의 날짜를 전부 구하는 쿼리다.

SELECT절에서의 LEVEL -1은 1일부터 구하기 위해서다.

이렇게 하지 않을 경우 12월2일부터 조회된다.(초기값이 1이기에)

level은 1부터 122까지 생성되는데 날짜 형식이기에 01 ~ 31까지 자동으로 매핑되어 조회된다.


개인 스터디 기록을 메모하는 공간이라 틀린점이 있을 수 있습니다.

틀린 점 있을 경우 댓글 부탁드립니다.

반응형