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
Freigeben: 2024-12-28 13:46:11
Original
856 Leute haben es durchsucht

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
)
Nach dem Login kopieren

Schritt 2: Daten aus CTE auswählen

SELECT myDate
FROM cte
OPTION (MAXRECURSION 0)
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage