可能重複:
Add 2 hours to current time in MySQL?SQL時間問題 - 需要它6小時向前
我的服務器目前是基於美國東部時間,因爲我在英國,我需要將此推進6小時。
當使用在MySQL NOW()
,我得到了錯誤的時間,有什麼我可以添加到NOW()
把它向前調6個小時? 感謝
可能重複:
Add 2 hours to current time in MySQL?SQL時間問題 - 需要它6小時向前
我的服務器目前是基於美國東部時間,因爲我在英國,我需要將此推進6小時。
當使用在MySQL NOW()
,我得到了錯誤的時間,有什麼我可以添加到NOW()
把它向前調6個小時? 感謝
參考this
SELECT ADDTIME(now(), '06:00:00')
看到這裏DIFFERNCE
SELECT ADDTIME(now(), '06:00:00') as EAST_TIME , now() as UK_TIME
每個連接時區。每個連接的客戶端都有自己的時區設置,由會話time_zone變量給出。最初,會話變量從全局time_zone變量中獲取其值,但客戶端可以使用以下語句更改其自己的時區:
mysql> SET time_zone = timezone;
該值可以是一個字符串,表示與UTC的偏移量,如'+10:00'或'-6:00'。
是的,你可以使用date_add
功能:
date_add(now(), interval 6 hour)
您還可以使用adddate
這是date_add
的別名。
請考慮將時間存儲爲數據庫中的UTC,並在顯示時將其轉換爲本地時間。
如果轉換是從一個時區轉換到另一個時區而不是設定的小時數,則可以使用convert_tz
函數。例如:
convert_tz(now(), '-6:00', '0:00')
或:
convert_tz(now(), 'US/Eastern', 'MET')
中有一個等價的函數+1:OP需要使用CONVERT_TZ,並瞭解mysql實例正在使用什麼時區... – 2010-06-03 22:53:02
這種取決於你的應用程序,但在許多情況下,它是存儲在UTC任何時候,做時區轉換的UI是個好主意。這樣你就不必擔心服務器的時區等等。 – 2010-06-03 13:55:49
++ Matti。如果您使用當地時間,他們會在您入場/離場時節省一小時的時間全部關閉。相信我,這很糟糕。使用UTC。 – DougN 2010-06-03 13:57:17
哇!小心! 只需增加6個小時就不會在一般情況下工作,因爲在美國我們有夏令時。小時偏移不總是6小時。有時候是五點。所以你需要一個能夠基於時區轉換時間的函數。 – 2010-06-03 13:58:06