2013-04-20 54 views
2

我在我的數據庫中有一些表格,特別是最初根據東部時間設置的表格。它有12k +條記錄,我試圖找到一種合理的方法來轉換這些表上的數據時間記錄以匹配gmt日期時間等價物,而不必構建循環遍歷所有行並逐一更新它們。是否有可能有效地做,或者我將不得不循環一個接一個?將數據庫記錄從東部時間轉換爲gmt

回答

0

ADDTIME()功能如何?您可以使用簡單查詢更新所需的所有列。

+0

這可能對一些我的問題的工作,但不幸的是。沒有人會考慮東西向或世界其他地區的人們的時區偏移。所以我們最終會遇到嚴重衝突的日誌以及相互衝突的股票數據 – chris 2013-04-20 18:18:09

+0

最終目標是通過將所有事情的基礎設置爲日期/時間並根據人員位置的偏移進行調整,從而使所有事情得到修復和正確同步 – chris 2013-04-20 18:18:50

+0

@chris我知道我只想更新日期。這變得越來越難,然後 – Fabio 2013-04-20 18:22:54

0

您可以使用CONVERT_TZ()函數。但在此之前的任何操作嘗試進行備份(你列複製例如到另一個叫timetest)

那就試試這個:

UPDATE table_name SET timecolumn = CONVERT_TZ(timecolumn,'EST','GMT'); 
+0

由於您的參考,我在一分鐘前在Stack上發現了一篇文章。我感到困惑的是,似乎我必須安裝某些東西或重新配置SQL作爲一個整體才能正確使用它?這種理解是否正確? – chris 2013-04-20 18:21:21

+0

有關服務器當前位置與sql最初配置的方式有關嗎? – chris 2013-04-20 18:22:10

+0

Errrr ...我不這麼認爲,看看那裏https://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html#function_convert -tz 它的工作原理那樣: mysql> SELECT CONVERT_TZ('2013-04-20 18:00:00','EST','GMT'); – 2013-04-20 18:25:40