2012-01-09 28 views
-1

我有一個將PHP日期時間存儲到我的MySQL表的PHP應用程序。我沒有注意到php服務器使用錯誤的時區設置,所以存儲在表中的所有日期都不正確。我的時區是GMT + 8,但PHP的'date.timezone'是GMT + 0,所以我需要添加8小時到表中的所有現有日期值。如何爲表中的每一行添加一個時間間隔到原始MySQL的日期時間值

當前數據:


ID,session_start,session_close,total_sale 
1,2012-01-01 01:35:33,2012-01-01 09:35:33,8211.9 
2,2012-01-02 01:32:31,2012-01-02 09:46:54,4323.56 
3,2012-01-03 01:21:38,2012-01-03 09:32:21,8732.33 

所需的數據:


ID,session_start,session_close,total_sale 
1,2012-01-01 09:35:33,2012-01-01 17:35:33,8211.9 
2,2012-01-02 09:32:31,2012-01-02 17:46:54,4323.56 
3,2012-01-03 09:21:38,2012-01-03 17:32:21,8732.33 

我需要修復的日期時間在我的MySQL表中的所有數據(加入8個多小時到原來的日期時間價值,確切地說)。

我知道這可以通過編寫一個簡單的PHP腳本來遍歷該表中的所有行並根據需要修改日期時間值來完成,但是如果有人能夠向我展示這一點,它會很有趣(也很酷!在MySQL中完成。

+0

@LightnessRacesinOrbit我'google'd。並且不知道我們可以使用當前列名作爲MySQL DATE_ADD()參數的參數。 – khairil 2012-01-09 16:59:12

+0

你學習了MySQL手冊嗎? – 2012-01-09 17:35:27

回答

1
UPDATE tablename SET 
    session_start=DATE_ADD(session_start INTERVAL 8 HOUR), 
    session_close=DATE_ADD(session_close INTERVAL 8 HOUR) 
WHERE 
    whatever 
+1

請注意,您可以執行'session_start + INTERVAL 8 HOUR'。 – 2012-01-09 16:43:48

+0

謝謝,從來沒有一天沒有學習新的東西。 – 2012-01-09 16:45:20

+0

我不知道它就這麼簡單。非常感謝btw! – khairil 2012-01-09 16:55:46

相關問題