MySQL

Incorrect datetime value(my.cnfでSTRICTの設定を入れたことで自動変換してくれないエラー)

More than 3 years have passed since last update.


環境


  • MySQL5.6

  • yumでインストール


エラー内容

my.cnfの設定で

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

が入っていると(mysql5.6だと初期値とのこと)、例えば


  • データベースのあるテーブルの日付の型:TIMESTAMP

  • そのテーブルにmysql側で入れる時間の型:DATETIME

になっているとIncorrect datetime valueというエラーが起きる

原因はSTRICT_TRANS_TABLESよりストリクトモードとなり

「無効なデータなどの挿入、更新時にエラーを発生させる状態」

今回で言えば「日付の型が違ったため」

である。


対策

# sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

sql_mode=NO_ENGINE_SUBSTITUTION

としてあげればok


参考

ググればいろいろ出てくるが僕はここを参考に