Mysql
 sql >> Database >  >> RDS >> Mysql

Valore datetime errato Numero errore database:1292

Ho scoperto dopo l'aggiornamento a MySQL 5.7 che questo errore ha iniziato a verificarsi in situazioni casuali, anche quando non stavo fornendo una data nella query.

Ciò sembra essere dovuto al precedente versioni di MySQL supportate date come 0000-00-00 00:00:00 (per impostazione predefinita) tuttavia 5.7.4 ha introdotto alcune modifiche al NO_ZERO_DATE collocamento. Se sono ancora presenti vecchi dati quando si utilizza una versione più recente di MySQL, potrebbero verificarsi errori casuali.

Avevo bisogno di eseguire una query come questa per reimpostare tutte le date zero su un'altra data.

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

In alternativa, potresti essere in grado di modificare il NO_ZERO_DATE impostazione, anche se nota cosa dicono i documenti a riguardo: