我有一个名为“ Task”的表,该表除其他外有两列:
> Date_due:TIMESTAMP日期
> Wait_in_seconds:秒数(INT)
我想将Wait_in_seconds值添加到查询中的日期,并将其与当前日期进行比较.
下面的查询没有正确的语法,但是它表示我想要的:
SELECT t
FROM Task t
WHERE (Date_due + Wait_in_seconds) < CURRENT_TIMESTAMP
编辑:KIMI解释说这与JPQL是不可能的.
编辑2:这个本地MySQL查询可以解决问题:
SELECT *, DATE_ADD(task.date_due, INTERVAL task.wait_seconds SECOND) AS dueDate
FROM task
HAVING dueDate < NOW()
ORDER BY dueDate ASC
解决方法:
标准JPQL在日期上不支持此类操作.您将不得不使用本机查询或在Java端进行计算,例如使用JodaTime(它是JSR-310的参考实现).