使用默认值将列添加到MySQL数据库中的表

时间:2017-04-06 12:17:18

标签: mysql sql database utc datetime-conversion

我有一个名为tab1的表。我想在表中添加一个新列。 我试过了

alter table tab1 add column mod_at TIMESTAMP default CURRENT_TIMESTAMP

我成功添加了该列。但是添加的默认时间戳值将是本地时间戳。如何将UTC时间戳添加为默认值,而不是本地时间戳?

2 个答案:

答案 0 :(得分:1)

我怀疑你误解了S'_password' p6 S'bla' 列类型的工作原理。此列始终在内部使用UTC,但在读取或写入时,它会从/转换为/到服务器/会话时区。您可以运行此查询以查看会话的时区:

TIMESTAMP

现在,如果您更改时区,例如:

SELECT @@session.time_zone

...您会看到已存储的值会更改以匹配新时区。这是预期的行为。

答案 1 :(得分:-1)

您可以使用UTC_TIMESTAMP()代替