2012-12-16 31 views
0

我試圖計算所發生的事件在一天,這本身很簡單:倒數還有幾天結束

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

但我需要一個結束一天下午4點進行設置。因此,下午4點前的所有評論都是N日,下午4點以後的新聞是N + 1日。這不是一個全球性的事情,所以我寧願不更改整個程序的時區等。也許我可以以某種方式將時區應用於此查詢或填充時間?

+0

什麼類型是'時間'? – jimhark

+0

是日期時間型 – rodling

回答

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

你有沒有嘗試過這樣的:

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

你想你的日子結束,在下午4點,或8小時早,所以,我們增加8小時time,迫使日在下午4點翻身。

+0

產生相同的結果一個以上,所以都似乎工作!謝謝 – rodling

+0

如果你的桌子很小,那沒關係,但是你測試過性能嗎? – jimhark

+0

yeap,每次都幾乎相同 – rodling