将现有MySQL数据库移动到具有不同操作系统时区的服务器
我在本地开发了一个应用程序(这是我第一个真正的商业应用程序),时间戳设置为O/S使用的时区。当我将我的应用程序放在托管在不同时区的服务器上时,我没有考虑到将现有MySQL数据库移动到具有不同操作系统时区的服务器,mysql,date,timezone,Mysql,Date,Timezone,我在本地开发了一个应用程序(这是我第一个真正的商业应用程序),时间戳设置为O/S使用的时区。当我将我的应用程序放在托管在不同时区的服务器上时,我没有考虑到NOW()和TIMESTAMP会产生不同的日期 在阅读了我的问题之后,处理这个问题的正确方法显然是将日期/时间戳存储在UTC中,并将它们在客户机代码上转换为所需的指定时区。不幸的是,我的应用程序运行了很长一段时间,我有1000个条目,它们标记在特定的时区,我通过以下方式进行了黑客修复: SET time_zone='-6:00' 现在我正在努
NOW()
和TIMESTAMP
会产生不同的日期
在阅读了我的问题之后,处理这个问题的正确方法显然是将日期/时间戳存储在UTC中,并将它们在客户机代码上转换为所需的指定时区。不幸的是,我的应用程序运行了很长一段时间,我有1000个条目,它们标记在特定的时区,我通过以下方式进行了黑客修复:
SET time_zone='-6:00'
现在我正在努力使用DST(因为MySQL服务器不支持我使用的时区名称)
我是否应该尝试将所有代码转换为UTC->Timezone,并将所有数据库转换为UTC?或者我应该让主机安装处理DST的正确时区名称吗?如果我是你,我会将代码转换为使用UTC存储/检索所有时间值,然后适当调整数据库中的值
我知道这是一个PITA,但从长远来看,它可能不会那么令人头痛。现在可能会有伤害,但正确的转换将所有东西保持在UTC是一条路。除非你的应用只需要再运行几天。您将希望在美国切换到非DST时间之前进行管理。在UTC中维护系统将节省大量的时间。祝你好运