2013-04-22 2 views
0
select * 
from employee 
having to_date(date, 'DD/MM/YYYY HH24:MI:SS') = to_date('01/01/2012 10:00:00', 'DD/MM/YYYY HH24:MI:SS') 

열 '날짜'HSQL에서 TO_DATE 나던 작업으로 VARCHAR/STRINGHSQL에서 날짜로

가 어떻게 HSQL 위의 쿼리 작업을 할 수 있습니다 문자열을 가져 오기 ??

+0

경우 TO_DATE (bean.date, 'DD/MM은/년의 HH24.! : MI : SS ') = to_date ('01/01/2012 10:00:00', 'DD/MM/YYYY HH24 : MI : SS') – VKPRO

+0

TO_DATE func는 HSQL에서 작동하지 않습니다. 그리고 나는 nativeQuery에서 그것을하고 싶다. – sethukrs

+0

emp.createCriteria (employee.class) . (Restrictions.eq ("date", java.sql.Date ("YourValue")))) .list) – VKPRO

답변

1

TO_DATE는 최신 버전 HSQLDB에서 작동합니다. 버전 2.2.9 또는 향후 릴리스 버전을 사용할 수 있습니다.

그러나 검색어가 a_horse_with_no_name에 의해 설명 된대로 잘못되어 HAVING 대신 WHERE가 필요합니다. 사실

select * 
from employee 
where to_date(date, 'DD/MM/YYYY HH24:MI:SS') = to_date('01/01/2012 10:00:00', 'DD/MM/YYYY HH24:MI:SS') 

당신은 또한 내가 오래된 스레드 알고 쿼리

select * 
from employee 
where to_date(date, 'DD/MM/YYYY HH24:MI:SS') = timestamp'2012-01-01 10:00:00' 
0

을 단순화 할 수 있지만,이 새로운 하나를 시작하는 것보다 업데이트 아마 더 나은 있도록 상단 구글 결과 - 특히 나는 내 문제를 해결했다. 이 쿼리 (hsqldb 버전 2.3.2)에 큰 문제가있었습니다. 여기서 날짜는 java에서 생성되고 데이터베이스에 varchar로 저장된 문자열입니다.

에 대한 캐스트가 없으면 to_date 호출이 작동하지 않으며 문서가 캐스트를 올바르게 작성하는 방법에 대해 약간 모호합니다 (실제 길이를 지정하는 동안 varchar cast를 수행해야한다고 생각했습니다. t이 사건 것 같다

select * from table2 where to_date(cast(timestamp as VARCHAR(254)), 'YYYY-MM-DD') > to_date('2015-09-02', 'YYYY-MM-DD') 

통지 (VARCHAR 등의 XXX (254)) 캐스트가 직원 콩에서