Datumsvergleich mit MySQL DATE_FORMAT
Beim Vergleichen von Datumsangaben mit der DATE_FORMAT-Funktion von MySQL ist es wichtig zu verstehen, dass das von Ihnen gewählte Format das Vergleichsergebnis beeinflusst .
Im angegebenen Beispiel enthält die Tabelle Datumsangaben im Format „%d-%m-%Y“ und die Abfrage versucht, sie im gleichen Format zu vergleichen. Dies führt jedoch zu falschen Ergebnissen, da „28-10-2012“ lexikografisch größer ist als „02-11-2012“.
Um dieses Problem zu beheben, wird empfohlen, Datumsangaben als Datumsangaben und nicht als Zeichenfolgen zu vergleichen. Die richtige Abfrage sollte lauten:
select date_format(date(starttime),'%d-%m-%Y') from data
where date(starttime) >= date '2012-11-02';
Hier extrahiert die date()-Funktion die Datumskomponente aus dem Startzeitfeld, während date '2012-11-02' den Vergleich angibt Datum im Format Jahr-Monat-Wert. Dadurch wird sichergestellt, dass der Vergleich korrekt als Datumsangaben durchgeführt wird.
Wenn starttime ein DATETIME-Feld ist, sollten Sie die Verwendung der folgenden Abfrage in Betracht ziehen, um wiederholte Konvertierungen zu vermeiden:
select date_format(date(starttime),'%d-%m-%Y') from data
where starttime >= '2012-11-02 00:00:00';
Im Allgemeinen ist es ratsam, den ISO-8601-Standard für die Datumsformatierung zu verwenden, z. B. y-M-d. Die obigen Abfragen zeigen jedoch, wie Datumsvergleiche mithilfe des bereitgestellten Formats durchgeführt werden.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3