날짜 범위 검색방법 0 2 652

by ekujb [MySQL] [2022.04.04 16:00:07]


안녕하세요. MySQL에서 날짜로 범위 검색을 하려고 하는데..

예를 들어 SELECT date_base FROM seed ORDER BY date_base ASC; 의 결과가 아래와 같다고 할때

'2022-03-11 10:00:00'

'2022-03-12 10:00:00'

'2022-03-13 10:00:00'

'2022-03-14 10:00:00'

'2022-03-15 10:00:00'

위 date_base를 기반으로 아래 쿼리와 같이 각각의 날짜를 순서대로 검색을 하고자 합니다.

SELECT * FROM xxx WHERE date_start BETWEEN '2022-03-11 10:00:00' AND '2022-03-12 10:00:00'

UNION ALL

SELECT * FROM xxx WHERE date_start BETWEEN '2022-03-12 10:00:00' AND '2022-03-13 10:00:00'

UNION ALL

SELECT * FROM xxx WHERE date_start BETWEEN '2022-03-13 10:00:00' AND '2022-03-14 10:00:00'

UNION ALL

SELECT * FROM xxx WHERE date_start BETWEEN '2022-03-14 10:00:00' AND '2022-03-15 10:00:00'

 

이 쿼리를 한방에 해결할 수 있는 방법이 없을까요?

by 마농 [2022.04.04 16:24:49]
SELECT *
  FROM (SELECT date_base sdt
             , LEAD(date_base) OVER(ORDER BY date_base) edt
          FROM seed
        ) a
 INNER JOIN xxx b
    ON b.date_start >= a.sdt
   AND b.date_start <  a.edt  -- 범위가 겹치지 않도록 등호(=) 제거
;

 


by ekujb [2022.04.04 16:35:33]

감사합니다. :D

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