Heim >Datenbank >MySQL-Tutorial >Wie generiere ich alle Daten innerhalb mehrerer Datumsbereiche in SQL?
Daten innerhalb mehrerer Datumsbereiche generieren
Wenn die Anforderung über einen einzelnen Datumsbereich hinausgeht, stellt die Generierung aller Daten innerhalb mehrerer Datumsbereiche eine Herausforderung dar . Dieser Artikel befasst sich mit solchen Szenarien und bietet eine effektive Lösung.
Das Problem
Wie in der bereitgestellten SQL-Fiddle dargestellt, besteht die Aufgabe darin, alle Daten für einen bestimmten Satz zu generieren mehrerer Datumsbereiche wie folgt:
<br>ID START_DATE END_DATUM<br>101. 1. April 2013 10. April 2013<br>102. 10. Mai 2013 12. Mai 2013<br>
Die Lösung
Die folgende Abfrage befasst sich mit diesem Problem Problem:
select A.ID, A.START_DATE+delta dt from t_dates A, ( select level-1 as delta from dual connect by level-1 <= ( select max(end_date - start_date) from t_dates ) ) where A.START_DATE+delta <= A.end_date order by 1, 2
Aufschlüsselung der Lösung
Beispielausgabe
Für die bereitgestellte Eingabe gibt die Abfrage Folgendes zurück Ausgabe:
<br>ID-Daten<br>101. 01. April 2013<br>101. 02. April 2013<br>101. 03. April 2013<br>101. 04. April 2013<br>101. April, 05. 2013<br>101. 06. April 2013<br>101. 07. April 2013<br>101. 08. April 2013<br>101. 09. April 2013<br>101. 10. April 2013<br>102 10. Mai 2013<br>102. 11. Mai 2013<br>102. 12. Mai 2013<br>
Das obige ist der detaillierte Inhalt vonWie generiere ich alle Daten innerhalb mehrerer Datumsbereiche in SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!