Datumsvergleich mit MySQL DATE_FORMAT
Beim Vergleich 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 mit demselben Format zu vergleichen. Dies führt jedoch zu falschen Ergebnissen, da „28-10-2012“ lexikographisch größer ist als „02-11-2012“.
Um dieses Problem zu beheben, wird empfohlen, Datumsangaben als Datumsangaben und nicht als Zeichenfolgen zu vergleichen. Die korrekte Abfrage sollte wie folgt lauten:
<code class="mysql">select date_format(date(starttime),'%d-%m-%Y') from data where date(starttime) >= date '2012-11-02';</code>
Hier extrahiert die Funktion date() die Datumskomponente aus dem Startzeitfeld, während date „2012-11-02“ das Vergleichsdatum im Jahr-Monat-Wert angibt bilden. 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 eine wiederholte Konvertierung zu vermeiden:
<code class="mysql">select date_format(date(starttime),'%d-%m-%Y') from data where starttime >= '2012-11-02 00:00:00';</code>
Im Allgemeinen wird die Verwendung empfohlen der ISO-8601-Standard für die Datumsformatierung, z. B. y-M-d. Die obigen Abfragen zeigen jedoch, wie Datumsvergleiche mithilfe des bereitgestellten Formats durchgeführt werden.
Das obige ist der detaillierte Inhalt vonWarum ist es beim Vergleich von Datumsangaben mit MySQLs DATE_FORMAT wichtig, dasselbe Format zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!