집 >데이터 베이스 >MySQL 튜토리얼 >SQL에서 연속 날짜 범위를 식별하고 추출하는 방법은 무엇입니까?
질문:
다음이 포함된 테이블에서 연속 날짜 범위를 추출해야 합니다. 정렬되지 않은 날짜의 단일 열입니다. 이러한 범위는 달력 개체를 정확하게 채우기 위해 시작 날짜와 종료 날짜가 필요한 시간 세그먼트를 나타냅니다.
해결책:
접근 방식:
SQL을 사용하여 이 문제를 해결하기 위해 "갭 앤 아일랜드" 방법을 사용할 수 있습니다. 이 방법은 행 번호와의 차이를 기준으로 연속 날짜를 그룹화합니다. 이 값은 각 연속 시퀀스에 대해 일정하게 유지됩니다. 그런 다음 MIN() 및 MAX() 함수를 사용하여 각 그룹의 시작 날짜와 종료 날짜를 추출합니다.
SQL 쿼리:
WITH t AS ( SELECT InfoDate d,ROW_NUMBER() OVER(ORDER BY InfoDate) i FROM @d GROUP BY InfoDate ) SELECT MIN(d),MAX(d) FROM t GROUP BY DATEDIFF(day,i,d)
설명:
출력:
결과 테이블에는 다음이 포함되어야 합니다. 열:
이 출력은 각 연속 날짜 범위의 시작 및 종료 날짜를 제공하므로 달력 개체를 다음으로 채울 수 있습니다. 필요한 날짜 정보를 알려드립니다.
위 내용은 SQL에서 연속 날짜 범위를 식별하고 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!