2017-04-06 47 views
0

我有一個名爲tab1的表。我想添加一個新的列到表中。 我試圖向MySQL數據庫中的表添加一列,默認值爲

alter table tab1 add column mod_at TIMESTAMP default CURRENT_TIMESTAMP 

我成功地添加列。但添加的默認時間戳值將是本地時間戳。如何將UTC時間戳添加爲默認值,而不是本地時間戳?

回答

-1

你可以使用UTC_TIMESTAMP()代替

+0

使用alter table tab1添加列mod_at TIMESTAMP默認UTC_TIMESTAMP()或ALTER TABLE添加列mod_at TIMESTAMP DEFAULT UTC_TIMESTAMP不可能會出錯 –

+0

不可能@Raymond – Virat

1

我懷疑你誤會如何TIMESTAMP列類型的作品。此列在內部始終使用UTC,但在讀取或寫入時,它會從/到/服務器/會話時區轉換。您可以運行此查詢,看看你的會話的時區:

SELECT @@session.time_zone 

現在,如果你更改時區,例如:

SET @@session.time_zone = '+00:00' 

...你會看到值已經存儲的變化以匹配新的時區。這是預期的行爲。