SELECT LEVEL BETWEEN_DT , TO_CHAR(START_DATE + LEVEL * 7 - 7,'WW') WEEK , TO_CHAR(START_DATE + LEVEL * 7 - 7, 'yyyy-mm-dd') SDT , TO_CHAR(START_DATE + LEVEL * 7 - 1, 'yyyy-mm-dd') EDT FROM ( SELECT TRUNC(TO_DATE('2022-11-13'), 'd') START_DATE , TRUNC(TO_DATE('2023-02-05'), 'd') END_DATE , (TRUNC(TO_DATE('2023-02-05'), 'd') - TRUNC(TO_DATE('2022-11-13'), 'd')) / 7 + 1 BETWEEN_DT FROM DUAL ) CONNECT BY LEVEL <= BETWEEN_DT
이렇게 해 봤는데 주의 시작 기준이 일요일이 아닌게 문제인것 같네요. ㅠㅠ
-- 일요일을 시작일로 하여 시작일의 WW 를 가져오면 문제가 없을 듯 합니다. SELECT lv , (sdt - NEXT_DAY(TRUNC(sdt, 'yyyy') - 1, 1)) / 7 + 1 ww_1 , TO_CHAR(sdt, 'ww') ww_2 , TO_CHAR(sdt, 'yyyy-mm-dd') sdt , TO_CHAR(edt, 'yyyy-mm-dd') edt FROM (SELECT LEVEL lv , sdt + LEVEL*7 - 7 sdt , sdt + LEVEL*7 - 1 edt FROM (SELECT TRUNC(TO_DATE('2022-11-13', 'yyyy-mm-dd'), 'd') sdt , TRUNC(TO_DATE('2023-02-05', 'yyyy-mm-dd'), 'd') edt FROM dual ) CONNECT BY LEVEL <= (edt - sdt) / 7 + 1 ) ;