3
我有一堆數據作爲一堆unix樣式時間戳(UTC)存儲在mysql數據庫中。以前,這些已經通過Perl的gmtime()
進行了格式化。看起來MySQL的FROM_UNIXTIME()
函數試圖有幫助,並正確的夏令時,但我真的不希望它。如何在MySql中將unix時間戳轉換爲UTC日期?
將結果從系統時區(GMT/BST)轉換爲UTC或者確定DST是否在特定時間生效是否有一個很好的方便方法?
我有一堆數據作爲一堆unix樣式時間戳(UTC)存儲在mysql數據庫中。以前,這些已經通過Perl的gmtime()
進行了格式化。看起來MySQL的FROM_UNIXTIME()
函數試圖有幫助,並正確的夏令時,但我真的不希望它。如何在MySql中將unix時間戳轉換爲UTC日期?
將結果從系統時區(GMT/BST)轉換爲UTC或者確定DST是否在特定時間生效是否有一個很好的方便方法?
你試過:
mysql> SELECT NOW();
+---------------------+
| NOW() |
+---------------------+
| 2011-04-04 22:54:13 |
+---------------------+
1 row in set (0.00 sec)
mysql> set @var = unix_timestamp(NOW());
Query OK, 0 rows affected (0.00 sec)
mysql> SET time_zone='+00:00';
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT NOW();
+---------------------+
| NOW() |
+---------------------+
| 2011-04-04 20:54:23 |
+---------------------+
1 row in set (0.00 sec)
mysql> SELECT FROM_UNIXTIME(@var);
+---------------------+
| FROM_UNIXTIME(@var) |
+---------------------+
| 2011-04-04 20:54:17 |
+---------------------+
1 row in set (0.02 sec)
如果你想使用命名的時區,你可以看到this page更多的信息,以及如何來填補你的系統上的時區表。
這很好。謝謝你Wrikken。我只是在這裏添加一些代碼供我參考,所以我不會忘記何時搜索我的收藏夾。 set blahblah = convert_tz(from_unixtime(blahblah),@@ session.time_zone,'+ 00:00'); – codingknob 2013-05-16 22:38:24
確實適合每種情況,因此取決於您是否需要_all_日期/時間相關字段來反映另一個時區,或者只是一個_single_,選擇一個或另一個。 – Wrikken 2013-05-16 22:40:45