2011-10-07 26 views

回答

1
select ((UNIX_TIMESTAMP(date_col)/CAST((time2 - time1)/10) AS INT) + time1), count(id) from my_table where date_col >= time1 AND date_col <= time2 GROUP BY ((UNIX_TIMESTAMP(date_col)/CAST((time2 - time1)/10) AS INT) + time1) 

我還沒有測試過它。但是像這樣的東西應該工作。

+0

嘿切坦,謝謝。這幾乎是正確的,只是group by子句和select列將(作爲INT的UNIX_TIMESTAMP(date_col)-time1)/ CAST((time2-time1)/ 10) – agrawalankur

0

劃分日期間隔的最簡單方法是,如果將它們存儲爲多個(即「開始時間」中的#個刻度)。據我所知,使用MySQL的日期時間是無法做到這一點的。

你決定怎麼做最終取決於你的應用程序。我會將它們存儲爲long,並且使用任何前端處理來轉換爲更具可讀性的格式。

通過給出每個間隔的行數,你的意思是什麼?那部分對我來說沒有意義。

+0

如果我將它們存儲了很長時間。然後,說我的兩個時間間隔是1318024876和1318030856.(100分鐘)。所以我需要在10分鐘的時間內將它們分開。並且對於每個區間,我需要屬於該區間的行數。 – agrawalankur

+0

如果我理解正確,你需要這個: SELECT count(*)FROM table WHERE datetime>'time1'AND datetime <'time1'+ interval; – Ignacio

+0

但我必須在每個時間間隔內運行它。我找到了答案。上面的答案是寫的。非常感謝您的幫助。 – agrawalankur

相關問題