반응형
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까지 자동으로 매핑되어 조회된다.
개인 스터디 기록을 메모하는 공간이라 틀린점이 있을 수 있습니다.
틀린 점 있을 경우 댓글 부탁드립니다.
반응형
'IT > DBMS' 카테고리의 다른 글
[SQL] 백분율 예제 (31) | 2024.03.20 |
---|---|
[cubrid] 서브 쿼리 별칭 사용 시 주의점 (43) | 2024.01.13 |
[DBMS] N:M(다대다) 관계일 때 매핑 테이블로 관계 형성 (61) | 2023.09.24 |
[Oracle] ORDER BY 시 조건 처리 (56) | 2023.09.24 |
[Oracle] 가장 마지막 row 조회(feat. partition by) (0) | 2023.08.07 |