我有一个名为 tab1 的表。我想在表中添加一个新列。 我试过了
alter table tab1 add column mod_at TIMESTAMP default CURRENT_TIMESTAMP
我成功添加了该列。但添加的默认时间戳值将是本地时间戳。如何添加 UTC 时间戳作为默认值,而不是本地时间戳?
最佳答案
我怀疑您误解了 TIMESTAMP
列类型的工作原理。此列始终在内部使用 UTC,但当您读取或写入时,它会在服务器/ session 时区之间进行转换。您可以运行此查询来查看 session 的时区:
SELECT @@session.time_zone
现在,如果您更改时区,例如:
SET @@session.time_zone = '+00:00'
...您将看到已存储的值发生更改以匹配新时区。这是预期的行为。
关于mysql - 向 MySQL 数据库的表中添加一列并使用默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43254993/