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!