0

我正在尝试计算一天内发生的事件,这本身很容易:

SELECT date(time),COUNT(DISTINCT comment)
FROM data
GROUP BY date(time)

但我需要在下午 4 点设置一天结束。所以下午 4 点之前的所有评论都是第 N 天,下午 4 点之后的新闻是第 N+1 天。这不是一个全球性的事情,所以我宁愿不改变整个程序的时区等等。也许我可以以某种方式将时区应用于这个查询或填充时间?

4

2 回答 2

1
SELECT
  DATE_ADD(date(time),
    INTERVAL case when time(time)>='16:00:00' then 1 else 0 end DAY) as day,
    COUNT(DISTINCT comment)
FROM data
GROUP BY day
于 2012-12-16T22:17:07.107 回答
1

你有没有试过这个:

SELECT date(time + INTERVAL 8 HOUR) as day, COUNT(DISTINCT comment)
FROM data
GROUP BY day

您希望您的日子在下午 4 点或提前 8 小时结束,因此,我们将 8 小时添加到time,迫使日期在下午 4 点翻转。

于 2012-12-16T22:18:29.910 回答