데이터에 날짜 조회 시 없는 날짜를 구하는 방법이 있나요? 0 2 138

by njnj [SQL Query] [2020.10.16 14:01:29]


테이블 데이터에 9월을 조회하는데 1일부터 30일까지 30건의 로우가 나와야하는데

중간에 3일이나 7일이 빠져서 28건이 나옵니다. 없는 날짜까지 포함할 수 있는 쿼리가 있을까요?

예를들어

 

select to_char(time, 'yyyymmdd') time
from A
where time between to_date('20200901','yyyymmdd') and to_date('20200930','yyyymmdd')


--결과 3일과 7일이 빠져 28건이 출력됨

 

by 신이만든지기 [2020.10.16 14:25:11]
    SELECT TO_CHAR(TRUNC(MON, 'MONTH') + LEVEL - 1, 'YYYYMMDD') AS RESULT
      FROM (SELECT TO_DATE(:YYYYMMDD, 'YYYYMMDD') MON FROM DUAL)
CONNECT BY LEVEL <= LAST_DAY(MON) - TRUNC(MON, 'MONTH') + 1;

지정한 달의 모든 일자가 나오게 하려면, 특정 테이블을 조회할 필요없이 DUAL을 사용하시면 됩니다.


by njnj [2020.10.16 15:23:49]

감사합니다. 나머지는 제가 구해봐야겠어요!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입