mysql で convert_tz が null を返すことに問題があります。
mysql --version
mysql Ver 14.14 Distrib 5.6.11, for osx10.7 (x86_64) using EditLine wrapper
マニュアルを読みましたhttp://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html 次のコマンドを実行しました: bash-3.2# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql Enter password: 警告: Unable to load '/usr/share/zoneinfo/+VERSION' as time zone. それをスキップします。
Warning: Unable to load '/usr/share/zoneinfo/Asia/Riyadh87' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/Asia/Riyadh88' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/Asia/Riyadh89' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/Mideast/Riyadh87' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/Mideast/Riyadh88' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/Mideast/Riyadh89' as time zone. Skipping it.
ERROR 1406 (22001) at line 38916: Data too long for column 'Abbreviation' at row 1
次に、mysqlを使用してこのコマンドを実行しました。SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','EST'); null を返します。mysql.time_zone_transition_type テーブルに GMT および EST エントリがあることを確認できます。