我需要一個jpql查詢來查找所有的LoadFileHistory,它的finishDate大於當前日期(自00:00:00開始)。例如大於27/11/2012 00:00:00。今天jpql比較日期
我已經有這個「從LoadFileHistory o選擇o o.finishDate = CURRENT_DATE」,但沒有得到任何東西。
我需要一個jpql查詢來查找所有的LoadFileHistory,它的finishDate大於當前日期(自00:00:00開始)。例如大於27/11/2012 00:00:00。今天jpql比較日期
我已經有這個「從LoadFileHistory o選擇o o.finishDate = CURRENT_DATE」,但沒有得到任何東西。
你應該得到今天的日期,如查詢詳細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();
'CURRENT_DATE'被評估爲當前日期。請參閱:http://www.objectdb.com/java/jpa/query/jpql/date – Alex
如果您正在查找帶日期的時間級別過濾。這對我有效。
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常見的。
...或者您可以在不添加外部依賴關係的情況下使用它並使用java.time ...'Instant.now()。減號(Duration.ofMinutes(15))' – Jules
如果你想要那些更大的爲什麼不用'''而不是'='? – Alex
亞歷克斯put = CURRENT_DATE的想法是,比較是與日期,但與時間不同。我的意思是,只是27/11/2012不是27/11/2012 10:15:00 – Manuel