2011-08-15 2 views
1

두 개의 varchar (30), startDate 및 endDate coloumn이 있으며 날짜 값과 해당 coloumn의 null도 있습니다. SQL Server 2005/2008에서 날짜 범위를 비교하고 싶습니다. 가 someting varchar coloumn의 날짜 범위를 비교하는 방법

WHERE e2.type=1 
    AND coloumn1 between convert(datetime,startDate,101) and convert(datetime,endDate,101) 

내가 내게 날짜 데이터 형식 varchar 데이터 형식의 변환이 범위 밖의 값의 결과에 오류를 범 실행하려고

있다.

답변

1

이 오류 메시지는 varchar에 저장된 값을 SQL로 datetime으로 변환 할 수 없음을 나타냅니다. 데이터를 상세하게 분석하고 문제 행을 찾아야합니다. 까다로운 일이 될 수 있습니다. 다음과 같이 시작하십시오.

SELECT StartDate, isdate(StartDate) 
from MyTable 
where StartDate is not null 
    and isdate(StartDate) = 0 

... EndDate와 동일하게 시작하십시오. 문자열 - 날짜 변환이 까다로워 질 수 있기 때문에 이것을 가지고 놀아야 할 것입니다. (말할 것도없이 datetime 값을 datetime 값으로 저장하는 것이 훨씬 낫습니다. 테이블 구조를 변경할 수 있다면 그렇게하십시오!)

관련 문제