在tz更改时停止在MySQL中自动更改日期

时间:2016-03-14 14:25:00

标签: mysql timezone

我正在使用DATETIME字段在MySQL中存储我的日期。没有直接指定任何时区(只有一个日期时间列)

但是当服务器上的时区发生变化时,MySQL会根据新的时区更新所有日期时间列。

实际上切换到EDT是原因。

我不需要自动重新计算日期 - 只想在其中存储特定日期。

因此,即使从EST日期手动更改为UTC,也应该相同(来自字符POV),如果它是2016-01-01 18:55它应该在任何新的tz中相同..

我没有运行任何脚本\查询来更新日期。

所以它由MySQL本身或服务器执行。

需要建议我需要检查以查找和禁用此类功能。

2 个答案:

答案 0 :(得分:0)

确保您使用的是DATETIME而不是TIMESTAMP

[来自MySQL文档] [1]:

  

MySQL将TIMESTAMP值从当前时区转换为UTC进行存储,然后从UTC返回到当前时区进行检索。 (对于其他类型,例如DATETIME,不会发生这种情况。)

您还应该查看此帖子(重复): Will changing a MySQL timezone change values of DateTime fields in a database?

答案 1 :(得分:0)

我为我带来的烂摊子感到抱歉 只是扩展我的查询以获取一些旧日期 - 它看起来没有变化

我的代码中的错误是错误的。

无论如何 - 感谢您的帮助