2012-11-27 99 views
6

finishDateの現在の日付(00:00:00以降)より大きいすべてのLoadFileHistoryを見つけるにはjpqlクエリが必要です。例えば、27/11/2012 00:00:00より大きい。今日のjpqlの日付比較

私はすでにこの1つを持っていますが、「o.finishDate = CURRENT_DATE」のLoadFileHistory oから選択してください。

+1

もっと大きいものが必要な場合は、なぜ '='の代わりに '>'を使用しますか? – Alex

+0

アレックスのput = CURRENT_DATEの考え方は、日付との比較は時間ではなく、時間によるものではないということです。つまり、27/11/2012 27/11/2012 10:15:00 – Manuel

答えて

19

あなたは、あなたのクエリにそれを供給する必要があり

ザ・(java.util.Dateの時間を持って、分、あまりに秒...)詳細hereのようなクエリに今日の日付を取得する必要があります:

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