Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Falscher datetime-Wert Datenbankfehlernummer:1292

Ich habe nach dem Upgrade auf MySQL 5.7 festgestellt, dass dieser Fehler in zufälligen Situationen auftrat, selbst wenn ich kein Datum in der Abfrage angegeben habe.

Dies scheint daran zu liegen, dass vorherige Versionen von MySQL unterstützten Datumsangaben wie 0000-00-00 00:00:00 (standardmäßig) jedoch wurden mit 5.7.4 einige Änderungen am NO_ZERO_DATE eingeführt Einstellung. Wenn Sie bei Verwendung einer neueren MySQL-Version noch alte Daten haben, können zufällige Fehler auftreten.

Ich musste eine Abfrage wie diese durchführen, um alle Nulldaten auf ein anderes Datum zurückzusetzen.

# If the columns supports NULL, use that
UPDATE table SET date_column = NULL WHERE date_column < '1000-01-01';

# Otherwise supply another default date
UPDATE table SET date_column = '1970-01-01' WHERE date_column < '1000-01-01';

Alternativ können Sie möglicherweise das NO_ZERO_DATE anpassen Einstellung, beachten Sie jedoch, was die Dokumentation dazu sagt: