将MySQL times tamp列从一个时区转换为另一个时区

将MySQL times tamp列从一个时区转换为另一个时区,mysql,mysqldump,Mysql,Mysqldump,需要了解如何将整个数据库时间戳列从一个时区转换为另一个时区 目前的服务器是UTC,MySQL也是UTC,所以在这方面一切都很好。所有与时间相关的列都是时间戳。问题是,当输入时间信息时,它们处于EST/EDT中。例如,输入开始时间:数据为2011年1月1日08:00:00 AM(美国东部时间/美国东部时间)。因为时区在开始时没有实现,所以数据库将其存储为UTC 08:00:00。所以数据库中的所有数据都是这样存储的。一旦我们得到需要时区信息的数据,这个模型就会崩溃 问题是:如何将所有这些时间戳列转

需要了解如何将整个数据库时间戳列从一个时区转换为另一个时区

目前的服务器是UTC,MySQL也是UTC,所以在这方面一切都很好。所有与时间相关的列都是时间戳。问题是,当输入时间信息时,它们处于EST/EDT中。例如,输入开始时间:数据为2011年1月1日08:00:00 AM(美国东部时间/美国东部时间)。因为时区在开始时没有实现,所以数据库将其存储为UTC 08:00:00。所以数据库中的所有数据都是这样存储的。一旦我们得到需要时区信息的数据,这个模型就会崩溃

问题是:如何将所有这些时间戳列转换为正确的UTC时间?代码将被更改,以便在向前的基础上在显示端处理此问题,但是历史数据呢

最简单的方法似乎是执行某种类型的mysqldump--tz utc,然后将数据导入,然后发布代码。然而,我似乎找不到一个好的例子来说明如何正确地做到这一点,或者是否有其他方法可以以最有效的方式做到这一点

谢谢

能否使用MySQL函数更新现有数据

UPDATE MyTable SET MyTimeColumn = ADDTIME (MyTimeColumn, -8:00:00) WHERE <the data is bad>
updatemytable SET MyTimeColumn=ADDTIME(MyTimeColumn,-8:00:00),其中

这不需要考虑夏季。