2017-04-06 50 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' 

...你会看到值已经存储的变化以匹配新的时区。这是预期的行为。