유효성 검사 저장 프로 시저에 쿼리가 있습니다. 그것은 이런 식입니다 :SQL Server 쿼리의 이상한 동작
SELECT *
FROM Table1
WHERE batchID IN (SELECT id FROM #tempIds)
AND CAST(field1 AS DATE) > CAST(field2 AS DATE)
모두 field1
및 field2
이 필드 1/2 반환 1.
#tempIds
테이블은 하나의 열 ID
을 가지고 있으며, 하나의 행을 포함에 IdDate을하고, 즉, 유효 기간이있다. 나는 위의 쿼리를 실행하면
, 나는이 오류가 :
Unable to convert varchar to date
하지만 그 대신 나는 그것이 작동 같은 임시 테이블에서 하드 코드 된 ID를 넣어 경우 임시 테이블에서 일괄 ID를 선택.
어떤 아이디어가 문제 일 수 있습니까?
"varchar를 날짜로 변환 할 수 없습니다."는 'field1' 또는'field2'는 날짜로 변환 할 수없는 varchar 값을 가짐을 나타냅니다. 오류 텍스트는 아주 자명합니다. –
#tempIds가 하나의 행만 가질 경우 id 값을 로컬 변수에 할당하고 where 절에 "="가 아닌 IN을 해당 로컬 변수로 사용합니다. – prabhu379
? 당신이 묘사하는 것은 말이되지 않습니다. – Paparazzi