経緯 WebアプリケーションのDBとしてMySQLを使っている中で、タイムゾーンが問題となる場面にでくわしたのですが、datetime型とtimestamp型のタイムゾーン的な違いを明確に説明できなかったので、その他のことも含めてこの二つの型の違いを調べてまとめました。 また、O/Rマッパー(ActiveRecordとSequelize)のタイムゾーン設定の挙動もまとめました。 tl:dr すごく長くなりました。先にまとめを見た方が良いです。 => まとめ 前置き 2018/02/01現在、5.7の日本語リファレンスは無いようです。この投稿での実行環境は5.7ですが、5.6と5.7に違いがないものは日本語の方(5.6のリファレンス)を引用します。 違いを説明する際に必要となるMySQLのこと SQLモード関連 現在のSQLモードの確認 PaaSとか使うとSQLモードの設定は結構最初から色々