QueryDSL中的平均日期差异

时间:2015-06-23 13:28:01

标签: jpa querydsl

我有一个实体,其Date对象代表最后一个活动。我想查询平均空闲时间。所以在SQL中就像:

SELECT AVG(NOW() - idle_date) FROM mytable WHERE ....

我试着像这样计算差异:

query.singleResult(
    Expressions.dateOperation(
        Long.class, 
        Ops.DateTimeOps.DIFF_SECONDS,
        DateExpression.currentDate(),
        myTable.idleDate
    )
);

但这不允许我对结果做一个平均值,只有最小值和最大值

如何在日期/时间差异(以秒为单位)上表达此平均值?

1 个答案:

答案 0 :(得分:0)

我相信你可以使用NumberTemplate个对象;沿着这些方向的东西应该做你需要的:NumberTemplate.create(Double.class, "AVG(NOW() - {0})", myTable.idleDate);