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