我正在尝试计算一天内发生的事件,这本身很容易:
SELECT date(time),COUNT(DISTINCT comment)
FROM data
GROUP BY date(time)
但我需要在下午 4 点设置一天结束。所以下午 4 点之前的所有评论都是第 N 天,下午 4 点之后的新闻是第 N+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
你有没有试过这个:
SELECT date(time + INTERVAL 8 HOUR) as day, COUNT(DISTINCT comment)
FROM data
GROUP BY day
您希望您的日子在下午 4 点或提前 8 小时结束,因此,我们将 8 小时添加到time
,迫使日期在下午 4 点翻转。