MySQLのCONVERT_TZがNULLになる

MySQL

DjangoのORM使用時に、date型のフィールド名__monthで、月の指定が出来るのだが、その中でCONVERT_TZを使用しており、そいつがどうも上手く動かずに苦労したので、メモしておきます。

どうやら、自分の環境にタイムゾーン情報が入っていないことが原因らしく、以下のことで解決しました。

my.cnf

sql-mode=""
default-time-zone=Asia/Tokyo

コマンド

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql

ポイント

ポイントはsql-modeをオフっておくことでした。
ここが最初strict modeになっていて、タイムゾーンを追加するコマンドでエラーが出ていました。
これで、SELECT CONVERT_TZ(‘2004-01-01 12:00:00′,’GMT’,’MET’);などしたら、ちゃんと値が取れるようになりました。

コメントを残す