2012-11-27 295 views
6

我需要一個jpql查詢來查找所有的LoadFileHistory,它的finishDate大於當前日期(自00:00:00開始)。例如大於27/11/2012 00:00:00。今天jpql比較日期

我已經有這個「從LoadFileHistory o選擇o o.finishDate = CURRENT_DATE」,但沒有得到任何東西。

+1

如果你想要那些更大的爲什麼不用'''而不是'='? – Alex

+0

亞歷克斯put = CURRENT_DATE的想法是,比較是與日期,但與時間不同。我的意思是,只是27/11/2012不是27/11/2012 10:15:00 – Manuel

回答

19

你應該得到今天的日期,如查詢詳細here(java.util.Date具有時,分,秒太...)

的你應該把它提供給你的查詢:

Query q = em.createQuery("select o from LoadFileHistory o where o.finishDate > :today "); 
q.setParameter("today",todaysDateObject,TemporalType.DATE); 
q.getResultList(); 
+4

'CURRENT_DATE'被評估爲當前日期。請參閱:http://www.objectdb.com/java/jpa/query/jpql/date – Alex

0

如果您正在查找帶日期的時間級別過濾。這對我有效。

Date now = DateUtils.addMinutes(new Date(), -15); 
Query q = em.createQuery("Select u From Users u Where u.dateCreated > :today"); 
q.setParameter("today",now,TemporalType.TIMESTAMP); 

DateUtils是apache常見的。

+0

...或者您可以在不添加外部依賴關係的情況下使用它並使用java.time ...'Instant.now()。減號(Duration.ofMinutes(15))' – Jules

相關問題