Heim > Datenbank > MySQL-Tutorial > Wie erstelle ich eine Datumsreihe in MySQL?

Wie erstelle ich eine Datumsreihe in MySQL?

Barbara Streisand
Freigeben: 2025-01-14 09:36:43
Original
867 Leute haben es durchsucht

How to Generate a Date Series in MySQL?

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:

  1. Erstellen Sie eine temporäre Tabelle mit fortlaufenden Nummern.
  2. Verwenden Sie die Funktion adddate(), um das entsprechende Datumsintervall zu jeder Zahl hinzuzufügen.
  3. Verwenden Sie die Funktion date_format(), um das generierte Datum so zu formatieren, dass es dem gewünschten Format entspricht.

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

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!

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