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’);などしたら、ちゃんと値が取れるようになりました。