按日期分组,在long(bigint)中存储时间戳的列

时间:2011-11-03 09:18:15

标签: mysql hibernate datetime group-by timestamp

我想从每天的表中获取计数但是时间列很长,所以我不能简单地按时间列分组。我必须按时间列分组。我怎么能这样做?

表:

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

我已经尝试了以下查询,但它不起作用,因为我有很长时间,我想按日期分组。

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

如何在上述查询中按日期分组?

我还要在hibernate中使用这个查询,所以需要一个也可以用hql编写的查询。

2 个答案:

答案 0 :(得分:2)

首先,我们将时间戳转换为日期,然后按日期分组!

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

希望这会奏效。欢呼:)

答案 1 :(得分:1)

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