定期的に行う場合:
select convert_tz(now(), "UTC", "Europe/London")
MariaDBサーバー上で直接、以下を生成します。
+-------------------------------------------+
| convert_tz(now(), "UTC", "Europe/London") |
+-------------------------------------------+
| 2013-03-07 16:01:32 |
+-------------------------------------------+
しかし、ルビー1.8.7または1.9.3幅を介して行われた場合:
q = 'select convert_tz(now(), "UTC", "Europe/London")'
ActiveRecord::Base.connection.select_all(q)
それは生成します:
"convert_tz(now(), \"UTC\", \"Europe/London\")" => nil
MySQLセットアップに対して同じことを行います。
q = 'select convert_tz(now(), "UTC", "Europe/London")'
ActiveRecord::Base.connection.select_all(q)
結果:
"convert_tz(now(), \"UTC\", \"Europe/London\")" => "2013-03-07 16:05:14"
現在MySQLWorkbenchでテストされており、同じ悪い結果がそこで発生し、変換された時間の代わりにnullが返されます。
だから私はそれがMariaDBの何かだと思いますか?