2011-11-03 69 views
2

我想從表中每天獲取計數,但時間列很長,所以我不能僅僅按時間列進行分組。我必須按時間按日期分組。我怎樣才能做到這一點?在long(bigint)中存儲時間戳的列中按日期進行分組

表:

Column | type 
---------------- 
id  | Long (bigint) 
name  | String (varchar) 
time  | Long (bigint) 

我有嘗試下面的查詢,但因爲我在很長一段時間,我按日期要組這是行不通的。

select time,count(*) from my_table mt group by time; 

如何在上述查詢中按日期進行分組?

另外一件事我將在hibernate中使用這個查詢,所以需要一個也可以用hql編寫的查詢。

回答

2

首先,我們會將我們的時間戳轉換爲日期,然後按日期分組!

select mt.time,count(*) from my_table mt group by DATE(FROM_UNIXTIME(mt.time)); 

希望這會工作。歡呼:)

+0

您需要回刻度而不是單引號(或根本沒有刻度)。 –

+1

你知道如何在postgresql中做同樣的事嗎? –

+0

@Salman:謝謝你的糾正。 – Suleman

1
SELECT DATE(FROM_UNIXTIME(`time`)) AS date_from_time, COUNT(1) 
FROM my_table 
GROUP BY date_from_time 
+0

它不起作用。我得到的結果爲null | 588'。 588是表的總行數。 –

相關問題