2012-11-27 22 views
6

Geçerli olandan daha büyük olan tüm LoadFileHistory öğelerini bulmak için bir jpql sorgusuna ihtiyacım var (00:00:00). Örneğin, 27/11/2012 00:00:00 'dan daha büyük.jpql gün karşılaştırma bugün

Bunu zaten bir tane var "LoadFileHistory o'dan o.finishDate = CURRENT_DATE nerede" seçin, ancak bana hiçbir şey vermiyor.

+1

Eğer daha büyük olanları istiyorsanız, neden '=' yerine '='? – Alex

+0

Alex put = CURRENT_DATE düşüncesi, karşılaştırmanın tarihle değil, zamanla yapıldığı yönündedir. Yani, sadece 27/11/2012 değil 27/11/2012 10:15:00 – Manuel

cevap

19

Sen gibi sorguya bugünün tarihini almalısınız detaylı here

sorgunuzla bunu temin etmelidir (java.util.Date ikinci çok saat, dakika var ...):

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

"CURRENT_DATE" geçerli tarihe göre değerlendirilir. Bakınız: http://www.objectdb.com/java/jpa/query/jpql/date – Alex

0

Tarih ile zaman düzeyinde filtreleme arıyorsanız. Bu benim için çalıştı.

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 yaygın bir apache'dir.

+0

... ya da harici bir bağımlılık eklemeden yapabilirsin ve java.time ... 'Instant.now() kullan. eksi (Duration.ofMinutes (15)) ' – Jules