Wie handhabe ich die Datumsreihenfolge für ein bestimmtes Format in MySQL?
Wenn es um die Reihenfolge von Datumsangaben in MySQL geht, ist der typische Ansatz: Verwenden Sie den Modifikator DESC für Formate wie JJJJ-MM-TT. Beim Umgang mit unterschiedlichen Datumsformaten wie TT/MM/JJJJ kommt es jedoch zu Verwirrung.
Im speziellen Fall der Bestellung von Daten im Format TT/MM/JJJJ funktioniert die bereitgestellte Abfrage nicht wie erwartet. Die Abfrage versucht, die DATE_FORMAT-Funktion direkt auf den DATE_FORMAT(Date, '%Y%m%d')-Ausdruck anzuwenden, der nicht mit dem gewünschten Ergebnis übereinstimmt.
Um dieses Problem zu beheben, haben Sie zwei Hauptoptionen:
Nur das Ausgabedatum formatieren: Wenn das Ziel ausschließlich darin besteht, das Datum anzuzeigen im Format TT/MM/JJJJ, ohne den tatsächlichen Datumswert zu ändern, können Sie die folgende Abfrage verwenden:
SELECT *, DATE_FORMAT(date,'%d/%m/%Y') AS niceDate FROM table ORDER BY date DESC LIMIT 0,14
In dieser Abfrage wird die Funktion DATE_FORMAT auf die Datumsspalte mit dem Wert „%d/%“ angewendet. m/%Y'-Format während des Datenabrufprozesses. Die Ergebnisse zeigen die Daten im gewünschten Format an, während die zugrunde liegenden Datumswerte unverändert bleiben.
Tatsächliche Sortierung nach Tag, Monat und Jahr: Wenn Sie es wirklich möchten Um die Ergebnisse nach Tag, dann nach Monat und schließlich nach Jahr zu ordnen, wie von TT/MM/JJJJ vorgeschlagen, müssen Sie eine benutzerdefinierte Vergleichsfunktion verwenden. Diese Funktion extrahiert die einzelnen Bestandteile des Datums und führt einen lexikografischen Vergleich durch. Hier ist eine Beispielabfrage, die diesen Ansatz implementiert:
SELECT * FROM table ORDER BY FORMAT_DAYOFMONTH(Date), FORMAT_MONTH(Date), FORMAT_YEAR(Date) DESC LIMIT 14
Das obige ist der detaillierte Inhalt vonWie ordne ich Datumsangaben im TT/MM/JJJJ-Format in MySQL richtig an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!