Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将现有MySQL数据库移动到具有不同操作系统时区的服务器_Mysql_Date_Timezone - Fatal编程技术网

将现有MySQL数据库移动到具有不同操作系统时区的服务器

将现有MySQL数据库移动到具有不同操作系统时区的服务器,mysql,date,timezone,Mysql,Date,Timezone,我在本地开发了一个应用程序(这是我第一个真正的商业应用程序),时间戳设置为O/S使用的时区。当我将我的应用程序放在托管在不同时区的服务器上时,我没有考虑到NOW()和TIMESTAMP会产生不同的日期 在阅读了我的问题之后,处理这个问题的正确方法显然是将日期/时间戳存储在UTC中,并将它们在客户机代码上转换为所需的指定时区。不幸的是,我的应用程序运行了很长一段时间,我有1000个条目,它们标记在特定的时区,我通过以下方式进行了黑客修复: SET time_zone='-6:00' 现在我正在努

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

在阅读了我的问题之后,处理这个问题的正确方法显然是将日期/时间戳存储在UTC中,并将它们在客户机代码上转换为所需的指定时区。不幸的是,我的应用程序运行了很长一段时间,我有1000个条目,它们标记在特定的时区,我通过以下方式进行了黑客修复:

SET time_zone='-6:00'
现在我正在努力使用DST(因为MySQL服务器不支持我使用的时区名称)


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

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


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

现在可能会有伤害,但正确的转换将所有东西保持在UTC是一条路。除非你的应用只需要再运行几天。您将希望在美国切换到非DST时间之前进行管理。在UTC中维护系统将节省大量的时间。祝你好运