休眠标准组结果按日期从时间戳

Posted

技术标签:

【中文标题】休眠标准组结果按日期从时间戳【英文标题】:Hibernate criteria group results by date from timestamp 【发布时间】:2014-12-12 20:27:22 【问题描述】:

我有一个带有时间戳列的表,并且想要创建 Hibernate 标准投影,以便仅按该时间戳列中的日期对我的结果进行分组(数据库中的结果是 YYYY-MM-DD HH:mm:ss)。 我知道我必须使用Projection.sqlGroupProjection但不安静肯定很热这样做。

另外,是否可以为 mysql 和 Oracle 编写相同的投影?

【问题讨论】:

【参考方案1】:

另外,如果您需要按该列排序,则需要为该列创建一个别名

Projections.alias(Projections.sqlGroupProjection(
    "trunc(timestampField) as myDate", "myDate", 
            new String[]  "myDate" , 
            new Type[]  StandardBasicTypes.DATE ), "myDateOrder"))

那么你可以使用:

criteria.addOrder(Order.asc("myDateOrder"));

注意:我的回答是基于 nuno 回答添加订单功能。

【讨论】:

【参考方案2】:

您可以尝试在sqlGroupProjection 中使用date 函数:

Projections.sqlGroupProjection("date(timestampField) as myDate", "myDate", new String[]  "myDate" , new Type[]  StandardBasicTypes.DATE )

【讨论】:

这部分在 Oracle 上失败,但在 MySQL 上有效。在 Oracle 上,它用 trunc(timestampField) 编写,但它给了我错误 uknown identifier 您是否将 myDate 用于其他用途? (例如订购)

以上是关于休眠标准组结果按日期从时间戳的主要内容,如果未能解决你的问题,请参考以下文章

Python Pandas:按日期分组,并按时间戳访问每个组

时间和日期

休眠中的时间戳

php怎么将指定日期转换为时间戳

数据重复时如何按组查找最小日期

通过休眠anh html插入时间戳