按非标准天数计算天数

时间:2012-12-16 22:06:28

标签: mysql datetime

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

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

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

你试过这个:

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

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