hql没办法做到。按时间分组,其实就是把时间格式化然后group by。比如在oracle里有to_char函数,可以把时间格式化,如果你想按日分组,那格式化后同一日内的记录的时间字段都是一样的,然后group by这个时间字符串表示。这种函数各个数据库是不一样的,而且,这种操作完全是sql的,根本没必要用hibernate。幸好hibernate可以进行sql的查询,所以不影响你写sql