【发布时间】:2013-03-26 18:03:30
【问题描述】:
我有一个使用类似这样的 sql 查询的报告:
SELECT HOUR(somedatetime) AS hour, COUNT(*) AS count
FROM table
GROUP BY HOUR(surveyenddatetime)
我在这里简化了它,省略了可以将结果限制在给定时间段内的 where 子句。它可以很好地获取在所选时间段内输入的按一天中的小时分组的总记录。
但是,它有一个致命的缺陷。当所选择的时间段包括与运行报告的用户不相同的“时区”的记录,例如来自夏令时的记录和夏令时的记录,它不起作用。所有记录都以 GMT/UTC 格式存储在日期时间字段中,并通过 Web 前端在 php 中转换为本地时间。但是这个查询会在任何事情发生之前运行,php 无法知道每个小时的总数的原始日期是什么。
有没有一种方法可以解决这个查询,以仅使用 MySQL 查询将夏令时考虑在内,还是我必须做一些更复杂的事情?
【问题讨论】: