Heim >Datenbank >MySQL-Tutorial >Wie fülle ich eine temporäre Tabelle mit Datumsangaben zwischen zwei Parametern?

Wie fülle ich eine temporäre Tabelle mit Datumsangaben zwischen zwei Parametern?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-28 13:46:11869Durchsuche

How to Populate a Temporary Table with Dates Between Two Parameters?

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!

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