Generieren einer Datumsfolge in T-SQL: Effiziente Methoden
In diesem Artikel werden effiziente Techniken zum Erstellen einer Reihe aufeinanderfolgender Datumsangaben innerhalb eines bestimmten Bereichs mithilfe von T-SQL untersucht, das mit SQL Server-Versionen 2005 und höher kompatibel ist. Während eine WHILE
-Schleife ein möglicher Ansatz ist, kann sie für größere Datumsbereiche weniger effizient sein. Eine überlegene Methode nutzt die spt_values
Systemtabelle.
Für Datumsbereiche bis zu 2047 Tage bietet die folgende T-SQL-Abfrage eine effektive Lösung:
<code class="language-sql">DECLARE @startDate DATETIME, @endDate DATETIME; SET @startDate = GETDATE(); SET @endDate = DATEADD(day, 100, @startDate); SELECT DATEADD(day, number, @startDate) AS IncrementalDate FROM (SELECT number FROM master.dbo.spt_values WHERE [type] = 'P') AS NumberSequence WHERE DATEADD(day, number, @startDate) < @endDate;</code>
Diese Abfrage nutzt die Zahlenfolge in spt_values
, um die Datumsreihe zu generieren. Es fügt jede Zahl in der Sequenz zum @startDate
hinzu und erzeugt so effektiv aufsteigende Datumsangaben. Die WHERE
-Klausel stellt sicher, dass die generierten Daten in den gewünschten Bereich fallen, der durch @startDate
und @endDate
definiert ist. Dieser Ansatz vermeidet die Leistungseinschränkungen, die oft mit iterativen WHILE
Schleifenmethoden verbunden sind.
Das obige ist der detaillierte Inhalt vonWie erstelle ich eine Reihe inkrementierender Datumsangaben in T-SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!