두 날짜사이 데이터출력 0 1 659

by 날아라! [MySQL] [2017.12.11 09:32:17]


안녕하세요.

 

디비데이터에 start, end라는 컬럼에 2017-12-01, 2017-12-11 이라는 데이터가 입력이 되어있습니다.

일정이 test 라고 되어있을때

2017-12-01 테스트

2017-12-02 테스트

2017-12-03 테스트

2017-12-04 테스트

2017-12-05 테스트

.

.

2017-12-11 테스트

 

위와같이 노출되는 방법이 없을까요?

자료를 찾아보니 무슨 join을 이용해서 출력해라..등등 말이 많은데, 실질적으로 적용해보면 원하는 결과가 안나오네요 ㅡㅡ

허접한 질문 읽어주셔서 감사합니다.

by 마농 [2017.12.11 10:55:15]

순번이 저장된 복제용 테이블을 미리 만들어 두고 사용하세요.

SELECT idx
     , sdt
     , edt
     , sdt + INTERVAL lv DAY dt
  FROM (SELECT 1 idx, '2017-12-01' sdt, '2017-12-11' edt) data_t
 INNER JOIN
       (SELECT a * 10 + b lv
          FROM (SELECT 0 a
                UNION ALL SELECT 1
                UNION ALL SELECT 2
                UNION ALL SELECT 3
                UNION ALL SELECT 4
                UNION ALL SELECT 5
                UNION ALL SELECT 6
                UNION ALL SELECT 7
                UNION ALL SELECT 8
                UNION ALL SELECT 9
                ) a
         CROSS JOIN
               (SELECT 0 b
                UNION ALL SELECT 1
                UNION ALL SELECT 2
                UNION ALL SELECT 3
                UNION ALL SELECT 4
                UNION ALL SELECT 5
                UNION ALL SELECT 6
                UNION ALL SELECT 7
                UNION ALL SELECT 8
                UNION ALL SELECT 9
                ) b
        ) copy_t
 WHERE lv <= DATEDIFF(edt, sdt)
 ORDER BY idx, lv
;

 

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