Saya menemukan setelah memutakhirkan ke MySQL 5.7 bahwa kesalahan ini mulai terjadi dalam situasi acak, bahkan ketika saya tidak memberikan tanggal dalam kueri.
Ini tampaknya karena sebelumnya versi tanggal yang didukung MySQL seperti 0000-00-00 00:00:00
(secara default) namun 5.7.4 memperkenalkan beberapa perubahan pada NO_ZERO_DATE
pengaturan. Jika Anda masih memiliki data lama saat menggunakan versi MySQL yang lebih baru, kesalahan acak mungkin muncul.
Saya perlu melakukan kueri seperti ini untuk menyetel ulang semua tanggal nol ke tanggal lain.
# 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';
Atau, Anda mungkin dapat menyesuaikan NO_ZERO_DATE
pengaturan, meskipun perhatikan apa yang dikatakan dokumen tentangnya: