使用不同的OS时区将现有的MySQL数据库移至服务器



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

在阅读了有关我的问题后,处理此问题的正确方法是将日期/时间戳存储在UTC中,并将其在客户端代码上将其转换为所需的指定时区。不幸的是,我的应用程序很长一段时间,我有1000个条目盖在一个特定的时区,在那里我通过以下方式解决了一个hacky修复:

SET time_zone='-6:00'

现在我正在与DST挣扎(因为MySQL Server不支持我正在使用的时区名称)。

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

如果我是您,尽管我会将您的代码转换为使用UTC中的存储/retrediving所有时间值,然后适当地调整数据库中的值。

我知道这是一个PITA,但是从长远来看,它可能会更少头痛。

现在可能会受到伤害,但是正确的转换维护UTC中的所有内容都是必经之路。除非您的应用只需要再运行几天。您将需要在美国切换到非二次之前进行管理。在UTC中维护系统将节省大量时间。祝你好运。

相关内容

  • 没有找到相关文章

最新更新