0

JPA 1을 최대 절전 모드와 함께 제공 업체로 사용하고 있습니다. 엔티티의 날짜를 현재 날짜 (시간에 관계없이)와 비교하고 해당 필드를 타임 스탬프로 저장하고 싶습니다 (필요에 따라). 내가 다음 코드에 의해 오라클 방언을 사용하던 때 올바른 결과를 얻고 있었다 :ja를 사용하여 현재 날짜가있는 데이터베이스 날짜 비교

select t from Task t where to_date(t.createdOn) = to_date(CURRENT_DATE) 

을하지만 난 SQL 서버 (2008)로 전환 할 때, 그것은 작동하지 않습니다. 쿼리 데이터베이스를 독립적으로 만들 수 있도록 일반적인 방법이 필요합니다.

답변

0

이 오라클 코드

SELECT * FROM Task t 
WHERE CAST(t.createdOn as date) = cast(getdate() as date) 

의 정확한 아날로그입니다하지만 난이 사용을 권장 : SQL SERVER 2008보고와 함께 작동하도록 Hibernate을 구성하는 방법에 대한 자세한 내용은

SELECT * FROM Task t 
WHERE t.createdOn >= cast(getdate() as date) 
     AND t.createdOn < DATEADD(d, 1, cast(getdate() as date)) 

편집

this

+0

하지만 날짜를 datetime 데이터 유형으로 변환하므로 전체 날짜를 비교하고 있습니다. 우리는 날짜 만 비교할 필요가 있습니다 (둘 다 시도하고 둘 다 전체 datetime을 비교하고 있습니다). – Hardik

+0

'DATE' 데이터 타입과 관련된'sql server' 문서를 살펴 보셨습니까? http://msdn.microsoft.com/en-us/library/bb630352.aspx –

+0

약간의 이해가 부족하다고 생각합니다. Hibernate는'datetime '을 생성 중이다. SQL 서버에 직접 사용하면 작동합니다. 그래서 다시 도움을 줄 수 있다면. – Hardik

관련 문제