QueryDSL 中的平均日期差异

Eri*_*his 5 jpa querydsl

我有一个带有代表上次活动的 Date 对象的实体。我想查询平均空闲时间。所以在 SQL 中类似:

SELECT AVG(NOW() - idle_date) FROM mytable WHERE ....
Run Code Online (Sandbox Code Playgroud)

我尝试这样计算差异:

query.singleResult(
    Expressions.dateOperation(
        Long.class, 
        Ops.DateTimeOps.DIFF_SECONDS,
        DateExpression.currentDate(),
        myTable.idleDate
    )
);
Run Code Online (Sandbox Code Playgroud)

但这不允许我对结果求平均值,只能对最小值和最大值求平均值。

如何用日期/时间差(以秒为单位)表达该平均值?

Rob*_*ain 0

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