2011-10-31 65 views
3

我有一個名爲「任務」表,該表有,除其他外,兩列:JPA添加秒,日期查詢

  • 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 

回答

4

標準JPQL不上日期支持這樣的操作。您將不得不使用本地查詢或在Java端進行計算,例如使用這是JSR-310的參考實現。

+0

Thx。我更喜歡Java代碼中的計算的原生SQL查詢。我會更新OT。 – BigJ

+0

「如何使用原生SQL查詢完成?」首先,它取決於數據庫。你正在使用哪個數據庫? – Kimi

+0

我正在使用MySQL – BigJ