Temporäre Tabelle mit Datumsangaben zwischen Parametern füllen
Um eine temporäre Tabelle mit Datumsangaben zwischen und einschließlich zwei Datumsparametern zu füllen, einschließlich des ersten Tages von Betrachten Sie für den Monat den folgenden Ansatz:
Schritt 1: Erstellen Sie einen rekursiven gemeinsamen Tabellenausdruck (CTE)
;WITH cte AS ( SELECT CASE WHEN DATEPART(Day,@StartDate) = 1 THEN @StartDate ELSE DATEADD(Month,DATEDIFF(Month,0,@StartDate)+1,0) END AS myDate UNION ALL SELECT DATEADD(Month,1,myDate) FROM cte WHERE DATEADD(Month,1,myDate) <= @EndDate )
Schritt 2: Daten aus CTE auswählen
SELECT myDate FROM cte OPTION (MAXRECURSION 0)
Beispiel:
Für @StartDate = '2011-01-01' und @EndDate = '2011-08-01', die folgenden Daten werden in der temporären Tabelle zurückgegeben:
2011-01-01 2011-02-01 2011-03-01 2011-04-01 2011-05-01 2011-06-01 2011-07-01 2011-08-01
Hinweis:
Dieser Ansatz behandelt Fälle, in denen @StartDate ist nicht der erste Tag des Monats, indem die Rekursion mit dem ersten des nächsten Monats begonnen wird. Wenn Sie trotzdem mit @StartDate beginnen möchten, entfernen Sie die 1 aus der inneren SELECT-Anweisung in der CTE-Definition.
Das obige ist der detaillierte Inhalt vonWie fülle ich eine temporäre Tabelle mit Datumsangaben zwischen zwei Parametern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!