首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JPQL :按日期分组

JPQL :按日期分组
EN

Stack Overflow用户
提问于 2012-05-21 23:39:08
回答 4查看 2.1K关注 0票数 0

我有一个表,其中包含每天的几条记录,每条记录都有一个表示日期时间的列。我想选择每天的记录数,所以我想在JPQL中创建一个查询,如下所示:

代码语言:javascript
复制
SELECT COUNT(*) FROM ORDERS o GROUP BY TRUNC(o.ORDER_DATE)

不幸的是,在JPQL中没有像TRUNC这样的函数... :(我该怎么做呢?

EN

回答 4

Stack Overflow用户

发布于 2020-02-07 16:55:06

使用cast!这将会起作用

代码语言:javascript
复制
@Query("select new DBClass(COUNT(c.field1) as count,cast(c.created as date)) from Table c GROUP BY cast(c.created as date)")
票数 1
EN

Stack Overflow用户

发布于 2012-05-21 23:51:43

我不确定它是否有效,但是你使用方法函数了吗?它会是这样的

代码语言:javascript
复制
Expression<Date> truncExpr = cb.function("TRUNC",Date.class,orders.get("orderDate"),"MM");
criteria.groupBy(truncExpr);
票数 0
EN

Stack Overflow用户

发布于 2012-05-22 05:03:05

Hibernate在解释JPQL查询时,可以理解它所知道的任何函数。如果你使用的方言能听懂TRUNC,那就没问题了。如果不是,则创建自定义方言以注册TRUNC函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10688292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档