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

标签 mysql timezone

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

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

实际上切换到 EDT 就是原因。

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

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

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

所以它要么由MySQL本身执行,要么由服务器执行。

需要建议我需要检查什么才能找到并禁用此类功能。

最佳答案

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

[来自 MySQL 文档][1]:

MySQL converts TIMESTAMP values from the current time zone to UTC for storage, and back from UTC to the current time zone for retrieval. (This does not occur for other types such as DATETIME.)

您还应该查看这篇文章(重复): Will changing a MySQL timezone change values of DateTime fields in a database?

关于mysql - 停止在 tz 更改时自动更改 MySQL 中的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35990146/

相关文章:

mysql - Mariadb 无法重新启动|启动

mysql - 使用 where 子句删除重复项

php - gearman/php与mysql之间的连接池

c# - 将mysql数据库中的数据显示到列表框中(从组合框中选择的数据)c#

ruby-on-rails - Rails 中的多时区任务调度(随时使用)

php - 将Android中的图片上传到MySQL数据库

php - 为什么有多个时区选择都解析为 EST?

c# - 从服务器端到 Javascript 的时区不正确

angularjs - angular-pickadate 时区 - selectedDate 是其他时区的模态日期前一天

coldfusion - 根据用户所在时区在 Coldfusion 中显示日期和时间