🕐

2018/03/11 02:00:00 が MySQL で使えない

2023/05/10に公開

三行で

  1. MySQL8 で timestamp 型の所に '2018/03/11 02:00:00' のデータを入れようとしたら、 SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '2018-03-11 02:38:47' for column 'modified_at' at row 1 と言われコケる。しかし '2018/03/11 01:00:00' や '2018/03/11 03:00:00' は入る。
  2. 原因として system_time_zone が 'CST' などアメリカローカルの時間帯になっているのが原因
  3. MySQL にタイムゾーンデータを挿入して、標準タイムゾーンを 'Asia/Japan' にした。

要はタイムゾーンの設定がアメリカ等とかになってて、2018/03/11 はサマータイムに入る日だったという話。

Discussion