SELECT TO_DATE(TO_CHAR(sdt + LEVEL - 1, 'yyyy-mm-dd'),'YYYY-MM-DD') USE_DATE , TO_CHAR(sdt + LEVEL - 1, 'MON-yyyy') PERIOD_NAME , TO_CHAR(TO_DATE(TO_CHAR(sdt + LEVEL - 1, 'yyyy-mm-dd'),'YYYY-MM-DD'),'DAY') DAY FROM (SELECT TRUNC(sysdate, 'y') sdt FROM dual) CONNECT BY LEVEL <= ADD_MONTHS(sdt, 12) - sdt;
첫줄의 to_date(to_char( 는 불필요한 군더더기입니다. 빼시구요.
요일은 d, dy, Dy, DY, day, Day, DAY 등으로 뽑으시면 됩니다.
SELECT sdt + LEVEL - 1 use_date , TO_CHAR(sdt + LEVEL - 1, 'MON-yyyy') period_name , TO_CHAR(sdt + LEVEL - 1, 'd') d , TO_CHAR(sdt + LEVEL - 1, 'Dy') dy , TO_CHAR(sdt + LEVEL - 1, 'day') day FROM (SELECT TRUNC(sysdate, 'y') sdt FROM dual) CONNECT BY LEVEL <= ADD_MONTHS(sdt, 12) - sdt ;