sql >> Databáze >  >> RDS >> Mysql

Nesprávná hodnota data a času Chyba databáze číslo:1292

Po upgradu na MySQL 5.7 jsem zjistil, že tato chyba se začala vyskytovat v náhodných situacích, i když jsem v dotazu neuváděl datum.

Zdá se, že je to proto, že předchozí verze MySQL podporovaná data jako 0000-00-00 00:00:00 (ve výchozím nastavení) však 5.7.4 zavedlo některé změny do NO_ZERO_DATE nastavení. Pokud máte při používání novější verze MySQL stále stará data, mohou se objevit náhodné chyby.

Potřeboval jsem provést dotaz, jako je tento, abych resetoval všechna nulová data na jiné datum.

# 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';

Případně můžete upravit NO_ZERO_DATE nastavení, i když si všimněte, co o něm říkají dokumenty:



  1. Výjimka v JPA při použití seed souboru pro PostgreSQL

  2. Izolace transakcí v PostgreSQL

  3. Počet sloupců souboru mysql.proc je nesprávný. Očekávaných 20, nalezeno 16. Tabulka je pravděpodobně poškozená

  4. Jak mohu použít ON DUPLICATE KEY UPDATE v PDO s mysql?