sql - datetime变量与datetime变量的字符串表示形式

时间:2010-05-06 03:52:45

标签: sql string datetime date

当搜索参数恰好是带日期的varchar数据类型时,我的查询需要很长时间才能响应。但是,如果我将varchar转换为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

一个人运行正常但另一个不运行的原因是什么?

1 个答案:

答案 0 :(得分:5)

因为在varchar的情况下,它必须转换为日期。这需要时间,并可能妨碍索引的有效使用。

使用正确的类型几乎总是最好的。