Datumsfolge in MySQL generieren
Frage:
Wie erstelle ich eine Datumsreihe in MySQL, ähnlich der Funktion „generate_series()“ in PostgreSQL?
Antwort:
MySQL hat kein direktes Äquivalent zu generic_series(), aber wir können ähnliche Ergebnisse erzielen, indem wir die folgenden Schritte ausführen:
Das Folgende ist eine Beispielabfrage zum Erstellen eines Datumsbereichs vom 1. Januar 2011 bis 31. Dezember 2011:
<code class="language-sql">SELECT DATE_FORMAT( ADDDATE('2011-01-01', @num := @num + 1), '%Y-%m-%d' ) AS 日期 FROM 任意表, (SELECT @num := -1) AS num LIMIT 365;</code>
In dieser Abfrage:
任意表
ist eine temporäre Tabelle, die eine oder mehrere Zeilen enthält (jede Tabelle kann verwendet werden, da nur die Anzahl der Zeilen verwendet wird). @num := @num 1
Erstellt eine Folge aufeinanderfolgender Zahlen beginnend bei 0. ADDDATE('2011-01-01', @num := @num 1)
Fügen Sie zu jeder Zahl das entsprechende Datumsintervall hinzu. DATE_FORMAT()
Formatieren Sie das generierte Datum in das gewünschte Format. LIMIT 365
Gibt die Anzahl der zu generierenden Daten an (365 für Nicht-Schaltjahre). Mit dieser Methode können wir Datumssequenzen in MySQL generieren, ohne dass eine separate Kalendertabelle erforderlich ist. Beachten Sie, dass 任意表
durch jede vorhandene Tabelle ersetzt oder zum Erstellen temporärer Datenzeilen verwendet werden kann. Dies ist eine Problemumgehung, da MySQL selbst keine direkten Funktionen wie PostgreSQL SELECT 1 UNION ALL SELECT 1 ...
bereitstellt. generate_series
Das obige ist der detaillierte Inhalt vonWie erstelle ich eine Datumsreihe in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!