我想将我们的mysql服务器从共享主机迁移到本地服务器。
当前服务器位于MST时区,databsse中CURRENT_TIMESTAMP的值存储为-7:00 GMT。
现在我想在印度的专用服务器上移动完整的应用程序。还要将存储在-7:00 GMT中的日期值转换为+5:30 GMT。
我可以通过编写脚本来更新时间来完成更新日期的任务,但是我想知道是否有任何方法可以从数据库本身(导入时或导出自身时)执行此操作
mysql版本5.0.96-log。我没有在UTC中获得选项导出时间戳。
答案 0 :(得分:3)
使用mysqldump时,设置标志:--tz-utc以强制所有时间戳都以UTC格式导出。 (http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html#option_mysqldump_tz-utc)。请注意 - 默认情况下启用tz-utc 。所以你应该不做任何事情:但先测试一下:)
如果只是在服务器上使用时间戳,则无需进行任何转换,从MySQL 4.1(http://dev.mysql.com/doc/refman/4.1/en/timestamp.html上的TIMESTAMP文档开始:
“值仍以UTC格式存储,但从当前值转换而来 存储时区,并转换回当前时区 检索即可。只要时区设置保持不变,就可以了 得到你存储的相同值。如果存储TIMESTAMP值,则 然后更改时区并检索值,即检索到的值 与您存储的值不同。“
这很容易测试:
所以另一个选择是你可以在执行导出/导入时将两个服务器设置为相同的时区,而不是在完成后将它们设置回正确的时区,但请注意MySQLDump这不应该是必要的。
答案 1 :(得分:-3)
一般语法
SELECT DATE_ADD(<column_name>, INTERVAL HOUR);
将UTC更改为MST
SELECT DATE_ADD(NOW(), INTERVAL 7 HOUR);