2010-05-06 5 views
4

검색 매개 변수가 날짜가있는 varchar 데이터 유형일 때 응답하는 데 너무 오래 걸리는 쿼리가 있습니다. 그러나, 내가 datetime 변수로 varchar를 변환하면 쿼리가 올바르게 실행됩니다. 예 :sql - datetime 변수와 datetime 변수의 문자열 표현

시간이 오래 걸립니다.

select count(id) 
    from names 
where updateddate > '1/5/2010' 

잘 실행됩니다.

declare @dateparam datetime 
    set @dateparam = convert(datetime, '1/5/2010',102) 

select count(id) 
    from names 
where updateddate > @dateparam 

하나는 정상적으로 작동하지만 다른 하나는 정상적으로 작동하지 않는 이유는 무엇입니까?

+3

이제 DBMS가 DATETIME과 같은 유형을 제공하는 이유를 알았습니다. 계산을보다 효율적으로 만듭니다. –

답변

5

varchar의 경우 날짜로 변환해야하기 때문에. 이것은 시간이 걸리고 인덱스의 효율적인 사용을 방해 할 수 있습니다.

올바른 유형을 사용하는 것이 가장 좋습니다.