【问题标题】:Moving existing MySQL database to server with different OS timezone将现有 MySQL 数据库移动到具有不同操作系统时区的服务器
【发布时间】:2012-10-14 18:13:00
【问题描述】:

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

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

SET time_zone='-6:00'

现在我正在为夏令时苦苦挣扎(因为 MySQL 服务器不支持我正在使用的时区名称)。

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

【问题讨论】:

    标签: mysql date timezone


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-02
        • 1970-01-01
        • 1970-01-01
        • 2020-11-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多