将现有MySQL数据库移动到具有不同OS时区的服务器

时间:2012-10-24 16:41:57

标签: mysql date timezone

我在本地开发了一个应用程序(这是我的第一个真正的商业应用程序),时间戳设置为O / S正在使用的时区。当我将我的应用程序放在托管在不同时区的服务器上时,我没有考虑到NOW()TIMESTAMP会生成不同日期的事实。

在阅读了我的问题后,显然正确处理此问题的方法是以UTC格式存储日期/时间戳,并将客户端代码转换为所需的指定时区。不幸的是,我的应用程序运行了很长时间,我有1000个条目加盖到特定的时区,在那里我做了一个hacky修复:

SET time_zone='-6:00'

现在我正在努力使用DST(因为MySQL服务器不支持我正在使用的时区名称)。

我是否应该尝试将所有代码转换为将UTC->时区和所有数据库转换为UTC?或者我应该让主机安装处理DST的正确时区名称?

2 个答案:

答案 0 :(得分:1)

如果我是你,虽然我会将您的代码转换为使用以UTC格式存储/检索所有时间值,然后适当调整数据库中的值。

这是我知道的PITA,但从长远来看,它可能不那么令人头痛。

答案 1 :(得分:1)

现在可能会受到伤害,但保持UTC中的所有内容的正确转换是要走的路。除非你的应用只需要运行几天。您需要在美国切换到非DST时间之前管理此操作。以UTC格式维护系统将节省大量时间。祝你好运。