-- 특정 기간 표시(2018-08-19 ~ 2018-08-29)

SELECT TO_CHAR( TO_DATE( '20180819', 'YYYYMMDD' ) + LEVEL-1, 'YYYYMMDD' ) AS DAY    

FROM DUAL 

CONNECT BY LEVEL <=( TO_DATE( '20180829', 'YYYYMMDD' ) - TO_DATE( '20180819', 'YYYYMMDD' ) +1 )


DAY

20180819

20180820

20180821

20180822

20180823

20180824

20180825

20180826

20180827

20180828

20180829


-- 금일 24시간 표시

SELECT TO_CHAR(SYSDATE, 'YYYYMMDD')||LPAD(LEVEL-1, 2, '0') AS DT 

FROM DUAL CONNECT BY LEVEL-0 < 25;


DT

2018082900

2018082901

2018082902

2018082903

2018082904

2018082905

2018082906

2018082907

2018082908

2018082909

2018082910

2018082911

2018082912

2018082913

2018082914

2018082915

2018082916

2018082917

2018082918

2018082919

2018082920

2018082921

2018082922

2018082923



-- 다음과 같이 JOIN 을 이용하여 단순화(?) 할 수 있음

SELECT TO_CHAR( TO_DATE( S, 'YYYYMMDD' ) + LEVEL-1, 'YYYYMMDD' ) AS DAY

FROM (SELECT '20180819' S, '20180829' E FROM DUAL)

CONNECT BY LEVEL <=( TO_DATE( E, 'YYYYMMDD' ) - TO_DATE( S, 'YYYYMMDD' ) +1 );


WRITTEN BY
테네시왈츠
항상 겸손하게 항상 새롭게 항상 진실하게

,