Heim >Datenbank >MySQL-Tutorial >Wie erstelle ich Datumsbereiche in SQL Server 2008?

Wie erstelle ich Datumsbereiche in SQL Server 2008?

Susan Sarandon
Susan SarandonOriginal
2025-01-15 08:46:41636Durchsuche

How to Generate Date Ranges in SQL Server 2008?

Datumsbereich mit SQL generieren

In SQL Server 2008 ist das Auffüllen einer Tabelle mit einem Datumsbereich zwischen zwei angegebenen Daten eine Herausforderung für Datenbankadministratoren. Als Reaktion auf dieses Problem wird im Folgenden eine praktische Lösung für SQL Server 2008 bereitgestellt.

Diese Abfrage verwendet eine Tabelle mit einer Zahlenfolge, um ein Datum zu generieren. Die erste Zeile der Abfrage deklariert zwei Variablen, @StartDate und @EndDate, die jeweils den Anfang und das Ende des gewünschten Datumsbereichs darstellen.

Die Unterabfrage in den Klammern generiert eine Zahlenfolge von 1 bis zur Anzahl der Zeilen in der Tabelle sys.columns. Diese Unterabfrage dient als Ersatz für eine Zahlentabelle oder eine Zähltabelle. Die resultierende Zahl wird in der Spalte „nbr“ gespeichert.

Die WHERE-Klausel filtert Zahlen, um nur diejenigen einzuschließen, die in den angegebenen Datumsbereich fallen. Insbesondere wird geprüft, ob nbr - 1 kleiner oder gleich der Differenz zwischen dem Startdatum und dem Enddatum ist. Da die Zeilennummerierung bei 1 beginnt, wird diese Berechnung angepasst.

Für jede qualifizierende Zahl verwendet die Abfrage die Funktion DATEADD, um @StartDate um den Wert nbr - 1 zu erhöhen. Das Ergebnis ist eine Tabelle mit allen Daten vom Startdatum bis zum Enddatum, jeweils eine Zeile für jeden Tag.

Eine Alternative zur Verwendung eines Zähltisches

Wenn eine Zähltabelle verfügbar ist, kann diese die Unterabfrage in der ursprünglichen Abfrage ersetzen, was zu einer effizienteren und präziseren Lösung führt. Zähltabellen enthalten eine Reihe aufeinanderfolgender Zahlen und sind daher eine ideale Quelle für die Generierung von Datumsbereichen. Als Referenz wird in der Antwort eine Abfrage mithilfe der Zähltabelle bereitgestellt.

Das obige ist der detaillierte Inhalt vonWie erstelle ich Datumsbereiche in SQL Server 2008?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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