假設如下表:MySQL和時區
CREATE TABLE IF NOT EXISTS `test` (
`stamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
當我運行的SQL語句:
SET time_zone = '+00:00';
INSERT INTO `test` (`stamp`) VALUES (CURRENT_TIMESTAMP);
在test
值是我的機器的本地時間而不是UTC。
根據MySQL的site
爲TIMESTAMP列中的值是從當前時區 轉換爲UTC用於存儲,並從UTC到當前時區 檢索。
我在做什麼錯?我想用UTC日期/時間戳存儲我的記錄,並在用戶的本地時區中檢索它們。
「我想用UTC日期/時間戳存儲我的記錄,並在用戶的本地時區中檢索它們。」 ---如果你使用時間戳 - mysql會自動完成。你不應該在乎如何存儲日期,你只需要與它在所需時區返回的事實 – zerkms
雖然哪個時區?我會假設MySQL正在使用服務器的時區。我的用戶將不會與我的服務器處於同一時區。我想我不需要告訴MySQL在某個時區給我返回值。相反,我只是接受它在我的服務器的時區,並從那裏做轉換? – StackOverflowNewbie
想知道如何做這樣的事情:獲取用戶時區中下午3點到5點之間的所有記錄。 – StackOverflowNewbie