我前几天发表了一篇文章,并使用了从响应中给出的建议。我有一个大型的Web应用程序,它托管在我们的时区的服务器上,在那里我使用了所有的datetime/timestamps到当前的时区。我应该使用UTC并将它在代码级别上转换为适当的时区。MySQL时区混淆
嗯,我现在这样做,但我有问题。我现在使用的服务器不在我的时区,TIMESTAMP(插入时)设置为系统(O/S)时间。不是UTC时间。
为什么不:
SET time_zone = '+00:00';
修复插入TIMESTAMP值?我如何确保MySQL服务器将时间戳默认为UTC?
解决:
这实在是令人困惑,因为MySQL的自动转换和显示TIMESTAMP的数据库,以目前的时区,所以我所有的时间戳转换并显示到系统时区。实际上,所有TIMESTAMPS存储为UTC。所以如果你去:
SET SESSION time_zone = '+00:00'; SELECT * FROM what_ever_table;
它会显示在该时区的时间戳。
可能的重复http://stackoverflow.com/questions/4562456/mysql-setting-time-zone-in-my-cnf-options-file – Bryan
@BryanMoyles号我不是所有者MySQL服务器,所以我不能更改配置文件。 – user1627928