SQL을 사용하여 연속 날짜 범위 감지
소개
캘린더 애플리케이션용 데이터를 준비할 때, 일련의 날짜에서 연속된 날짜 범위를 추출해야 하는 경우가 많습니다. 특히 날짜 간격이 일정하지 않은 경우 이 작업이 어려울 수 있습니다.
SQL을 사용한 솔루션
SQL을 사용하여 이 문제를 해결하려면 다음 접근 방식을 활용할 수 있습니다.
SQL 쿼리
다음 SQL 쿼리는 위 접근 방식을 구현합니다.
WITH t AS ( SELECT InfoDate d,ROW_NUMBER() OVER(ORDER BY InfoDate) i FROM table_name GROUP BY InfoDate ) SELECT MIN(d),MAX(d) FROM t GROUP BY DATEDIFF(day,i,d)
결과
쿼리 결과는 다음과 같습니다. 출력:
StartDate | EndDate |
---|---|
2013-12-04 | 2013-12-06 |
2013-12-09 | 2013-12-10 |
2014-01-01 | 2014-01-03 |
2014-01-06 | 2014-01-07 |
2014-01-29 | 2014-01-31 |
2014-02-03 | 2014-02-04 |
이 출력은 원본 데이터에 있는 모든 연속 날짜 범위의 시작 및 종료 날짜를 제공합니다.
위 내용은 SQL은 연속 날짜 범위를 어떻게 식별할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!