Heim >Datenbank >MySQL-Tutorial >Wie identifiziere ich aufeinanderfolgende Datumsbereiche in SQL?
Um aufeinanderfolgende Datumsbereiche in einer Spalte mit einer Datumsfolge zu identifizieren, kann SQL eingesetzt werden, um das Start- und Enddatum effizient zu extrahieren jedes einzelnen Bereichs.
Betrachten Sie den folgenden Datensatz:
InfoDate 2013-12-04 2013-12-05 2013-12-06 2013-12-09 2013-12-10 2014-01-01 2014-01-02 2014-01-03 2014-01-06 2014-01-07 2014-01-29 2014-01-30 2014-01-31 2014-02-03 2014-02-04
Das Ziel besteht darin, den Start und zu extrahieren Enddaten jedes aufeinanderfolgenden Datumsbereichs, was zu Folgendem führt:
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
Eine vereinfachte und effiziente SQL-Lösung kann mit den folgenden Schritten entwickelt werden:
Die SQL Die Abfrage, um dies zu erreichen, lautet:
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)
Das obige ist der detaillierte Inhalt vonWie identifiziere ich aufeinanderfolgende Datumsbereiche in SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!