【发布时间】:2012-10-15 19:06:12
【问题描述】:
几天前我发了一个帖子,并使用了回复中给出的建议。我有一个大型 Web 应用程序,它托管在我们时区的服务器上,在那里我使用了当前时区的所有日期时间/时间戳。我应该使用 UTC 并在代码级别将其转换为适当的时区。
好吧,我现在正在这样做,但我遇到了问题。我现在使用的服务器不在我的时区,并且 TIMESTAMP(插入时)设置为他们的系统(O/S)时间。不是 UTC 时间。
为什么不:
SET time_zone = '+00:00';
修复插入的 TIMESTAMP 值?如何确保 MySQL 服务器默认时间戳为 UTC?
已解决:
这真的很令人困惑,因为 MySQL 会自动将数据库中的 TIMESTAMP 转换并显示为当前时区,因此我所有的 TIMESTAMPS 都被转换并显示为 SYSTEMS 时区。实际上,所有 TIMESTAMPS 都存储为 UTC。所以如果你去:
SET SESSION time_zone = '+00:00'; SELECT * FROM what_ever_table;
它将显示该时区的时间戳。
【问题讨论】:
-
@BryanMoyles 不。我不是 MySQL 服务器的所有者,所以我无法更改配置文件。
标签: mysql datetime timezone timestamp