Mysql 在以long(bigint)格式存储时间戳的列中按日期分组

Mysql 在以long(bigint)格式存储时间戳的列中按日期分组,mysql,hibernate,datetime,group-by,timestamp,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

我想每天从表中获取计数,但时间列很长,所以我不能简单地按时间列分组。我必须在时间栏中按日期分组。我该怎么做

表:

Column   |  type
----------------
id       |  Long (bigint)
name     |  String (varchar)
time     |  Long  (bigint)
我尝试了以下查询,但它不工作,因为我有很长的时间,我想按日期分组

select time,count(*) from my_table mt group by time;
如何在上述查询中按日期分组


还有一件事我将在hibernate中使用此查询,因此需要一个也可以用hql编写的查询。

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

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

希望这能奏效。Chee:)

你需要反勾号而不是单引号(或者根本不需要勾号)。你知道如何在postgresql中做同样的事情吗?@Harry请使用“::date”除了from_unixtime和date函数,所以它将变得像(mt.time::date)注:抱歉,目前我还没有安装postgresql,请验证一次,如果有任何问题,请告诉我:)@Arians:我尝试过:
select time::date from my_table并返回
错误:无法将类型bigint转换为最新版本
@Harry:请指定您正在使用的版本好吗?它不工作。我得到的结果是
null | 588
。588是表的总行数。
SELECT DATE(FROM_UNIXTIME(`time`)) AS date_from_time, COUNT(1)
FROM my_table
GROUP BY date_from_time