Heim >Datenbank >MySQL-Tutorial >Wie generiert man effizient eine Datumsfolge in T-SQL?
Inkrementelle Datumsergebnismenge in T-SQL generieren
In SQL Server erfordert die Generierung eines Datumssatzes zwischen einem angegebenen Startdatum und Enddatum eine effiziente und optimierte Lösung. Ein gängiger Ansatz besteht darin, eine WHILE-Schleife zu verwenden, um schrittweise einen Tag zum Startdatum hinzuzufügen, bis das Enddatum erreicht ist.
Für Fälle, in denen der Datumsbereich jedoch innerhalb von 2047 Tagen liegt, kann eine andere Methode verwendet werden. Die folgende T-SQL-Abfrage verwendet die Systemtabelle spt_values :
<code class="language-sql">declare @dt datetime, @dtEnd datetime set @dt = getdate() set @dtEnd = dateadd(day, 100, @dt) select dateadd(day, number, @dt) from (select number from master.dbo.spt_values where [type] = 'P' ) n where dateadd(day, number, @dt) < @dtEnd</code>
Diese Abfrage verwendet die spt_values-Tabelle, die den Zahlenbereich von 0 bis 2047 enthält. Durch Filtern des Typs „P“ erhalten wir eine Menge aufeinanderfolgender Zahlen. Jede Zahl wird mit der Funktion dateadd zum Startdatum addiert, wodurch effektiv eine Ergebnismenge ansteigender Datumsangaben entsteht.
Diese Methode hat folgende Vorteile:
Für SQL Server 2008 und höher bietet diese Methode eine effiziente und unkomplizierte Lösung zum Generieren zunehmender Datumssätze in T-SQL.
Das obige ist der detaillierte Inhalt vonWie generiert man effizient eine Datumsfolge in T-SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!