我有一个小问题,但很严重:
我有一个包含许多记录的数据库,每个记录都有两个带有mysql时间戳的字段,如下所示:2012-02-14 11:09:59
由于每一行都有自己的时区(我把时区保存为字符串,比如"欧洲/柏林",也保存为浮动字段中的偏移量,比如+1),我有一个小问题:
我想在数据库中查询比现在更新或旧的记录-我可以将日期转换为GMT,并使用服务器tmz偏移量进行搜索。简单,但问题是,我想有可能搜索在某个本地时间发生的记录,例如:
我想在世界各地寻找明天22:00发生的事情。现在,如果我将所有时间戳转换为GMT,我就无法做到这一点,因为在这种情况下,22:00不是当地时间,而是GMT时间。。。有没有办法将时间戳和tmz字段组合在一个查询中?
提前1000谢谢!
我认为理想的解决方案是
-
将所有时间存储在UTC中,并在输出日期时进行偏移计算
-
或者有第二个单独的列,其中包含UTC日期。
然而,您最初的要求也应该是可能的-使用DATE_ADD()
来计算正确的偏移量:
SELECT DATE_ADD(event_time, INTERVAL event_time_offset HOUR)