2012-05-23 51 views
5

我使用下面的INSERT語句:MySQL的NOW()變化時區

INSERT INTO messages SET `to` = '".$to."', `from` = '".$this->userid."', `title` = '".$title."', `message` = '".$message."', `created` = NOW() 

但是,它使用我的服務器時間(美國/蒙特利爾)。我想要亞洲時區(亞洲/加爾各答)

這是可能的相同的查詢嗎?

回答

6

你會想在MySQL中繼續使用CONVERT_TZ()函數。它基於您操作系統使用的Olson database

Here是文檔。

+0

HI THX但不工作 「的郵件中插入SET'to' =「」。$以 「 ''from' ='」 $ (美國/菲尼克斯),美國/菲尼克斯(美國/菲尼克斯),美國/菲尼克斯'亞洲/加爾各答') – Harinder

+0

在創建的SELECT CONVERT_TZ(now(),'US/Eastern','US/Central'); – wesside

+0

相反,你可能需要填充時區表,參考:http://stackoverflow.com/questions/2523286/mysql-convert-tz mysql_tzinfo_to_sql/usr/share/zoneinfo | mysql -u root mysql – wesside

0
$myDateTime = new DateTime('2012-05-23 17:01', new DateTimeZone('GMT')); 
$myDateTime->setTimezone(new DateTimeZone('Asia/Kolkata')); 
echo $myDateTime->format('Y-m-d H:i'); 

修改爲上述代碼後,如所需的格式;你可以使用$myDateTime變量來插入數據庫。

6

打開到MySQL連接後,運行下面的查詢:

SET time_zone = timezone; 

那麼你將運行該時區爲連接(即,直至關閉「鏈接」的所有功能數據庫」。

如果具有相應的權限,你可以鎖定它‘永久’/ globaly。Tiemzone字符串是標準的字符串作爲你在你的問題有。

http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html

+0

timezone是「+7:00」 – BSQ

0

更好地直接使用SQL格式查詢:

..`created` = CONVERT_TZ(NOW(),'SYSTEM','Asia/Calcutta')..