sql >> Databasteknik >  >> RDS >> Mysql

Felaktigt datetime-värde Databasfelnummer:1292

Jag upptäckte efter uppgraderingen till MySQL 5.7 att det här felet började inträffa i slumpmässiga situationer, även när jag inte angav ett datum i frågan.

Det verkar bero på att föregående versioner av MySQL-stödda datum som 0000-00-00 00:00:00 (som standard) men 5.7.4 införde några ändringar i NO_ZERO_DATE miljö. Om du fortfarande har gamla data närvarande när du använder en nyare MySQL-version, kan slumpmässiga fel dyka upp.

Jag behövde utföra en fråga som denna för att återställa alla nolldatum till ett annat 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';

Alternativt kan du kanske justera NO_ZERO_DATE inställning, men notera vad dokumenten säger om det:



  1. Använd binär COPY-tabell FROM med psycopg2

  2. Öppna SQLite-frågeresultat automatiskt i en textredigerare

  3. Kontrollera om tabellen finns i SQL Server

  4. Förstå SQL Server Lockdown till säker databasmiljö