2012-11-27 2 views
6

finishDate가 00:00:00 이후의 현재 날짜보다 큰 LoadFileHistory를 찾으려면 jpql 쿼리가 필요합니다. 예 : 27/11/2012 00:00:00보다 큼.오늘 날짜 비교가

나는 이미이 하나가있다. "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'는 현재 날짜로 평가됩니다. See : 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는 (는) 아파치 공통입니다.

+0

... 아니면 외부 의존성을 추가하지 않고 java.time ...'Instant.now()를 사용할 수있다. 마이너스 (Duration.ofMinutes (15))' – Jules

관련 문제