Heim > Datenbank > MySQL-Tutorial > Wie generiert man in SQL Datumsangaben über mehrere Datumsbereiche hinweg?

Wie generiert man in SQL Datumsangaben über mehrere Datumsbereiche hinweg?

Patricia Arquette
Freigeben: 2025-01-04 10:12:34
Original
681 Leute haben es durchsucht

How to Generate Dates Across Multiple Date Ranges in SQL?

Daten zwischen mehreren Datumsbereichen generieren

Das Problem der Generierung von Daten zwischen zwei bestimmten Daten ist recht häufig. Bei der Bearbeitung mehrerer Datumsbereiche kann die Lösung jedoch komplexer werden. Diese Frage auf StackOverflow stellt ein solches Szenario dar und bietet eine elegante Lösung mithilfe einer Inline-Ansicht und einer rekursiven Abfrage:

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
Nach dem Login kopieren

Die Inline-Ansicht berechnet einen Bereich von Deltas von 1 bis zur maximalen Differenz zwischen Anfang und Ende Datumsangaben eines beliebigen Bereichs in der Tabelle mithilfe einer rekursiven Abfrage. Dieser Deltabereich wird dann in der Hauptabfrage verwendet, um alle Datumsangaben zwischen dem Start- und Enddatum jedes Bereichs zu generieren.

Die Abfrage verknüpft zunächst die Tabelle t_dates mit der Inline-Ansicht und generiert so alle möglichen Startdatumspaare Daten und Deltas. Anschließend werden die Paare herausgefiltert, bei denen das resultierende Datum außerhalb des Enddatums des entsprechenden Bereichs liegen würde. Abschließend sortiert die Abfrage die Ergebnisse nach ID und Datum.

Diese Lösung ist flexibel und kann zur Generierung von Daten für beliebig viele Datumsbereiche verwendet werden. Es nutzt die Leistungsfähigkeit rekursiver Abfragen, um eine präzise und effiziente Möglichkeit zur Lösung dieses Problems bereitzustellen.

Das obige ist der detaillierte Inhalt vonWie generiert man in SQL Datumsangaben über mehrere Datumsbereiche hinweg?. 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