Ich weiß, es ist ziemlich alt, aber ich treffe nur das Problem, und es ist das, was ich in der Säge:
Wenn Sie die Zeichenfolge in einem DATETIME- explizit zu konvertieren, würde die STR_TO_DATE function die beste Wahl sein SQL doc:
[Für beste Ergebnisse bei Verwendung von BETWEEN mit Datums- oder Uhrzeitwerten] verwenden Sie CAST(), um die Werte explizit in den gewünschten Datentyp zu konvertieren. Beispiele: Wenn Sie einen DATETIME-Wert mit zwei DATE-Werten vergleichen, konvertieren Sie die DATE-Werte in DATETIME-Werte. Wenn Sie eine Zeichenfolge-Konstante wie "2001-1-1" in einem Vergleich zu einem DATUM verwenden, umwandeln Sie die Zeichenfolge an einem DATUM.
Ich nehme an, es ist besser STR_TO_DATE zu verwenden, da sie die Zeit eine Funktion nur machen nahm dafür und auch die Tatsache, dass ich dies in der BETWEEN doc ...
Wenn Ihr Server oder Strings gefunden sind nicht in UTC sei vorsichtig, da die implizite Konvertierung mit dem Server/den Sessions time_zone und nicht mit der Zeitzone des Wertes erfolgt, mit dem es verglichen wird. Die Zeichenfolge ist also dieselbe lokale time_zone, auch wenn Sie sie mit UTC_TIMESTAMP() vergleichen. – ClearCrescendo
@ClearCrescendo: Guter Punkt, thx. –