MySQL SELECT 쿼리에서 날짜 범위 생성
이 도움말에서는 지정된 날짜 범위 내에서 날짜 목록을 생성하는 방법을 설명합니다. 예를 들어 시작 날짜가 '2012-02-10'이고 종료 날짜가 '2012-02-15'인 경우 다음과 같은 결과를 얻어야 합니다.
<code>日期 ---------- 2012-02-10 2012-02-11 2012-02-12 2012-02-13 2012-02-14 2012-02-15 </code>
솔루션
이를 달성하려면 다음 쿼리를 사용할 수 있습니다.
<code class="language-sql">SELECT * FROM (SELECT ADDDATE('1970-01-01',t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i) selected_date FROM (SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t0, (SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t1, (SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t2, (SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t3, (SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t4) v WHERE selected_date BETWEEN '2012-02-10' AND '2012-02-15'</code>
이 쿼리는 5개의 서브 쿼리(t0~t4)의 값을 조합하여 가상 테이블을 생성합니다. 각 하위 쿼리는 한 자리 정수(0-9)의 시퀀스를 생성합니다. 그런 다음 ADDDATE()
함수를 사용하여 이러한 정수를 연결하여 날짜를 구성합니다. WHERE
절은 날짜를 필터링하여 지정된 범위 내의 날짜를 검색합니다.
참고: 이 솔루션은 거의 300년 후의 날짜 범위에 적용됩니다.
위 내용은 MySQL SELECT 쿼리에서 날짜 범위를 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!