【问题标题】:php & mysql record-individual timezonephp & mysql 记录-个人时区
【发布时间】:2012-02-14 10:59:08
【问题描述】:

我有一个小问题,但很讨厌:

我有一个包含许多记录的数据库,每条记录都有两个带有 mysql 时间戳的字段,如下所示: 2012-02-14 11:09:59

而且由于每一行都有它自己的时区(我将时区保存为字符串,例如“Europe/Berlin”,也保存为浮点字段中的 +1 等偏移量),我有一个小问题:

我想在数据库中查询比 -now- 新或旧的记录 我可以将日期转换为 GMT 并使用服务器 tmz-offset 搜索它们。 简单,buuuuttt,问题是,我希望有可能搜索在某个本地时间发生的记录,例如:

我想在全世界搜索明天 22:00 发生的事情。 现在,如果我将所有时间戳转换为 GMT,我就无法做到这一点,因为在 where 条件下,22:00 将不是当地时间,而是 GMT 时间...... 有什么办法可以在一个查询中结合时间戳和 tmz 字段?

提前感谢 1000!

【问题讨论】:

  • Now if i convert all timestamps to GMT i could not do that 为什么不呢?

标签: php mysql timezone


【解决方案1】:

我认为理想的解决方案是

  • 以 UTC 格式存储所有时间,并在输出日期时进行偏移计算

  • 或者有第二个单独的列,其中包含 UTC 日期。

但是,您的原始要求应该也是可能的 - 使用 DATE_ADD() 计算正确的偏移量:

SELECT DATE_ADD(event_time, INTERVAL event_time_offset HOUR) 

【讨论】:

  • 使用两个不同字段的解决方案似乎是最好的,尤其是在性能方面...再次感谢! =)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 2011-06-29
  • 2021-01-22
  • 2011-12-10
  • 2012-05-10
  • 1970-01-01
相关资源
最近更新 更多