MySQL 5.7にアップグレードした後、クエリで日付を指定していなくても、このエラーがランダムな状況で発生し始めたことを発見しました。
これは、前が原因のようです MySQLのバージョンは、0000-00-00 00:00:00
のような日付をサポートしていました (デフォルト)ただし、5.7.4ではNO_ZERO_DATE
にいくつかの変更が加えられました 設定。新しいバージョンのMySQLを使用しているときに古いデータがまだ存在する場合は、ランダムエラーが発生する可能性があります。
すべてのゼロの日付を別の日付にリセットするには、このようなクエリを実行する必要がありました。
# 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';
または、NO_ZERO_DATE
を調整できる場合があります 設定、ただしドキュメントの内容に注意してください: