2014-03-27 184 views
0

我試圖插入一個時間戳到數據庫中,我需要時間戳在UTC時間,而不是服務器的時區。將unix時間轉換爲UTC datetime

INSERT INTO my_table SET time = FROM_UNIXTIME(:epochTime) 

但新插入的datetime值不是UTC時間,我該怎麼做?

也許我也應該使用CONVERT_TZ,但我不知道我轉換的時區。

回答

1

是啊我想看看CONVERT_TZ:

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_convert-tz

從MySQL搶時區:

mysql> SELECT @@global.time_zone, @@session.time_zone; 

編輯:下面的查詢返回當前會話的時區。

select timediff(now(),convert_tz(now(),@@session.time_zone,'+00:00')); 

URL的一些信息:How do I get the current time zone of MySQL?

如果服務器有不同的時區,告訴我們您的操作系統或位置。

+0

感謝 - 'CONVERT_TZ(from_unixtime(1395928430),@@ session.time_zone,'+00:00')' – Drahcir

+0

'@@ session.time_zone'返回「SYSTEM」,但它仍然有效 – Drahcir

+0

是的, SYSTEM是一個有效的時區,可以使用now()等進行轉換。我應該強調,很高興它的工作。 –