2014-03-28 76 views
0

下面是我的表定義,它自動將時間戳值插入到每條記錄中。我想要做的就是讓時間戳使用特定的時區,例如在我的情況下,我希望它使用不列顛哥倫比亞省的當前時間。我該怎麼做?時間戳使用特定的時區?

,因爲當我插入表中的數據我真的不從我的PHP腳本傳遞timestame值,但它採用默認值。

CREATE TABLE `cfv_postbusupdate` (
    `BusNumber` int(11) NOT NULL, 
    `Direction` varchar(100) DEFAULT 'Not Provided', 
    `StopNames` varchar(300) DEFAULT 'Not Provided', 
    `Status` varchar(45) DEFAULT 'Not Provided', 
    `comments` varchar(150) DEFAULT 'None', 
    `username` varchar(45) DEFAULT 'anonymous_user', 
    `dayofweek` varchar(45) DEFAULT NULL, 
    `time` varchar(20) DEFAULT NULL, 
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `DatePosted` timestamp NULL DEFAULT CURRENT_TIMESTAMP, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; 

回答

0

時間戳存儲爲檢索時轉換爲應用程序正在使用的時區的UTC值。如果你想不列顛哥倫比亞省時間設置時區與SET time_zone = 'america/vancouver';

手動參考是here

+0

不知道我做的是對的,但我選擇了phpmyadmin,並在SQL SQL選項卡試圖運行以下命令SET time_zone ='america/vancouver';但得到了以下錯誤#1298 - 未知或不正確的時區:'美國/溫哥華'? –

+1

如果您尚未安裝它們,則時區字符串將不起作用。如果你在託管服務器上運行,你的ISP必須這樣做。你可以使用'set time_zone ='+08:00''(或者你的偏移量),但是這不會考慮夏令時。請注意,此設置適用於每個連接。請參閱我鏈接到的參考手冊以獲取完整的概要。 – 2014-03-28 06:38:58

0

使用這一個:是指該鏈接:https://stackoverflow.com/a/6158432/3242978

-- Make sure we're all working off of the same local time zone 
test=> SET timezone = 'America/Los_Angeles'; 
SET 
test=> SELECT NOW(); 
       now    
------------------------------- 
2011-05-27 15:47:58.138995-07 
(1 row) 

test=> SELECT NOW() AT TIME ZONE 'UTC'; 
      timezone   
---------------------------- 
2011-05-27 22:48:02.235541 
(1 row) 

更新:1

MySQL docs,當您使用錯誤代碼SQLSTATE錯誤#1193發生。

Message: Unknown system variable %s 

而且,正如你可以在same page看,沒有定義SQLSTATE 99003

+0

@ dev_marshell08,看看我的答案.. – jmail

+0

我可以使用phpmyadmin運行此命令嗎?我嘗試過,但有一個錯誤說#1193 - 未知的系統變量'時區' –

+0

@ dev_marshell08,看看我的更新:1 – jmail