gpt4 book ai didi

mysql - 在 MySQL 中根据时区更改 CURRENT_TIMESTAMP 值

转载 作者:行者123 更新时间:2023-11-30 23:22:59 31 4
gpt4 key购买 nike

我想将我们的 mysql 服务器从共享主机迁移到本地服务器。

当前服务器处于 MST 时区,数据库中 CURRENT_TIMESTAMP 的值存储为格林威治标准时间 -7:00。

现在我想在印度的专用服务器上移动完整的应用程序。还想将存储在 -7:00 GMT 中的日期值转换为 +5:30 GMT。

我可以通过编写脚本来更新时间来完成更新日期的任务,但是我想知道是否有任何方法可以从数据库本身(在导入时或导出时)

mysql 版本 5.0.96-日志。我没有获得 UTC 格式的选项导出时间戳。

最佳答案

使用 mysqldump 时,设置标志:--tz-utc 以强制将所有时间戳导出为 UTC。 (http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html#option_mysqldump_tz-utc)。注意这里 --tz-utc 默认启用。所以你应该什么都不做:但先测试 :)

如果只是在服务器上使用时间戳,则无需执行任何转换操作,来自 MySQL 4.1 后 TIMESTAMP 的文档(http://dev.mysql.com/doc/refman/4.1/en/timestamp.html):

"values still are stored in UTC, but are converted from the current time zone for storage, and converted back to the current time zone for retrieval. As long as the time zone setting remains constant, you get back the same value you store. If you store a TIMESTAMP value, and then change the time zone and retrieve the value, the retrieved value is different from the value you stored."

这很容易测试:

  1. 将时间戳保存到您的表中
  2. 更改服务器的时区
  3. 检索它:返回值应反射(reflect)新时区。

所以另一个选择是你可以在导出/导入时将两个服务器设置为相同的时区,而不是在完成后将它们设置回正确的时区,但注意 MySQLDump 这不应该是必要的。

关于mysql - 在 MySQL 中根据时区更改 CURRENT_TIMESTAMP 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14732692/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com