2013-04-20 55 views
2

我在我的数据库中有一些表格,特别是最初根据东部时间设置的表格。它有12k +条记录,我试图找到一种合理的方法来转换这些表上的数据时间记录以匹配gmt日期时间等价物,而不必构建循环遍历所有行并逐一更新它们。是否有可能有效地做,或者我将不得不循环一个接一个?将数据库记录从东部时间转换为gmt

回答

0

ADDTIME()功能如何?您可以使用简单查询更新所需的所有列。

+0

这可能对一些我的问题的工作,但不幸的是。没有人会考虑东西向或世界其他地区的人们的时区偏移。所以我们最终会遇到严重冲突的日志以及相互冲突的股票数据 – chris 2013-04-20 18:18:09

+0

最终目标是通过将所有事情的基础设置为日期/时间并根据人员位置的偏移进行调整,从而使所有事情得到修复和正确同步 – chris 2013-04-20 18:18:50

+0

@chris我知道我只想更新日期。这变得越来越难,然后 – Fabio 2013-04-20 18:22:54

0

您可以使用CONVERT_TZ()函数。但在此之前的任何操作尝试进行备份(你列复制例如到另一个叫timetest)

那就试试这个:

UPDATE table_name SET timecolumn = CONVERT_TZ(timecolumn,'EST','GMT'); 
+0

由于您的参考,我在一分钟前在Stack上发现了一篇文章。我感到困惑的是,似乎我必须安装某些东西或重新配置SQL作为一个整体才能正确使用它?这种理解是否正确? – chris 2013-04-20 18:21:21

+0

有关服务器当前位置与sql最初配置的方式有关吗? – chris 2013-04-20 18:22:10

+0

Errrr ...我不这么认为,看看那里https://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html#function_convert -tz 它的工作原理那样: mysql> SELECT CONVERT_TZ('2013-04-20 18:00:00','EST','GMT'); – 2013-04-20 18:25:40