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

Falscher DateTime-Wert '0000-00-00 00:00:00' - Date_Sub() in Having

Erste Option:

Diese Warnung könnte wahrscheinlich auf den SQL_MODE zurückzuführen sein .

Gemäß der MySQL-Dokumentation "Wenn der NO_ZERO_DATE- oder NO_ZERO_IN_DATE-SQL-Modus aktiviert ist, sind Nulldaten oder Teile von Daten nicht zulässig.". Das kann also die Ursache für Ihr INSERT sein mit '0000-00-00 00:00:00' schlägt fehl.

Sie können Ihren SQL-Modus überprüfen, indem Sie Folgendes ausführen:

SELECT @@sql_mode;

und gegebenenfalls das NO_ZERO_DATE oder NO_ZERO_IN_DATE gesetzt sind, dann können Sie einfach:

SET sql_mode = '';

Zweite Option

Die andere Option ist, dass es aufgrund von STRICT_TRANS_TABLES fehlschlägt mode.Als MySQL-Dokumentation sagen:

Dasselbe gilt für datetime.

Sie müssen also entweder den STRICT MODE deaktivieren ODER wenn das Deaktivieren nicht möglich ist - ändern Sie die Abfrage so, dass sie kein ungültiges Datum/Datum/Uhrzeit-Ergebnis zurückgibt