티스토리 뷰

날짜 connect by 할 때

 

 

 


SELECT TO_CHAR(I::DATE, 'YYYYMMDD') AS DAY
    FROM GENERATE_SERIES( TO_DATE(REGEXP_REPLACE(#{startDt}, '\D','','g'), 'YYYYMMDD')
        , TO_DATE(REGEXP_REPLACE(#{endDt}, '\D','','g'), 'YYYYMMDD'), '1 DAY'::INTERVAL) I


흔히 이렇게 쓰는데 문제는 실행계획에서 기간이 짧은데도 불구하고 1000 rows로 고정됨.

 

 

 


SELECT TO_CHAR(#{startDt}::timestamp + make_interval(days => I), 'YYYY-MM-DD') AS DAY
    FROM GENERATE_SERIES(0, DATE_PART('day', #{endDt}::timestamp - #{startDt}::timestamp)::integer) I

 

 

이런식으로 자료형을 바꿔서 응용하면 정상적인 실행계획을 출력할 수 있다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함