Heim > Datenbank > MySQL-Tutorial > Wie kann ich in Oracle Daten über mehrere Datumsbereiche hinweg generieren?

Wie kann ich in Oracle Daten über mehrere Datumsbereiche hinweg generieren?

Linda Hamilton
Freigeben: 2025-01-02 15:06:42
Original
941 Leute haben es durchsucht

How Can I Generate Dates Across Multiple Date Ranges in Oracle?

Umgang mit mehreren Datumsbereichen für die Datumsgenerierung

Das Generieren von Datumsangaben zwischen zwei Datumsangaben kommt in verschiedenen Programmierszenarien häufig vor. Während das Generieren von Daten für einen einzelnen Bereich unkompliziert ist, kann die Erweiterung dieser Funktionalität auf mehrere Bereiche eine Herausforderung darstellen.

Beachten Sie die folgende Tabelle, in der jede Zeile einen Datumsbereich darstellt:

ID START_DATE END_DATE
101 April 1, 2013 April 10, 2013
102 May 10, 2013 May 12, 2013

Der erwartete Die Ausgabe sollte einzelne Daten innerhalb jedes Bereichs generieren:

ID Dates
101 April 1, 2013
101 April 2, 2013
... ...
101 April 10, 2013
102 May 10, 2013
102 May 11, 2013
102 May 12, 2013

Oracle bietet eine geniale Lösung, um dies zu erreichen Ergebnis:

select 
  A.ID, 
  A.START_DATE + (delta - 1) 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 - 1) <= A.end_date
order by 1, 2;
Nach dem Login kopieren

Die Delta-Spalte nutzt die CONNECT BY-Hierarchie von Oracle, um eine Folge von Ganzzahlen von 1 bis zur maximalen Differenz zwischen End- und Startdatum in der Tabelle zu generieren. Der Ausdruck A.START_DATE (Delta – 1) erhöht das Startdatum um das entsprechende Delta für jeden Datensatz in den Ergebnissen. Die WHERE-Klausel filtert Ergebnisse heraus, die das Enddatum des aktuellen Datumsbereichs überschreiten.

Genießen Sie diese elegante Lösung zum Generieren von Datumsangaben über mehrere Bereiche hinweg in Oracle!

Das obige ist der detaillierte Inhalt vonWie kann ich in Oracle Daten über mehrere Datumsbereiche hinweg generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage