2013-03-07 73 views
1

在做常規:直接紅寶石CONVERT_TZ將返回零

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或?

回答

0

升級到5.5.29-MariaDB的解決了這個問題,所以我想這是關係到5.5.28。

0

您可能會錯過時區信息。您可以通過使用mysql_tzinfo_to_sql實用程序或從mysql dev site下載表來生成該表。

如果你在Mac或Linux,那麼下面很可能會爲你工作(可能需要更新您的時區信息的位置)

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -uroot -Dmysql