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 中国語 Web サイトの他の関連記事を参照してください。