JPA在查询中添加秒数

时间:2011-10-31 13:58:22

标签: mysql sql date add jpql

我有一个名为“任务”的表,其中包括两列:

  • 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

1 个答案:

答案 0 :(得分:4)

标准JPQL不支持日期上的此类操作。您必须使用本机查询或在Java端进行计算,例如使用JodaTime作为JSR-310的参考实现。