--改成这样,在OperDate字段上建议索引,就可以解决效率问题select * from table1 where OperDate>='2005-02-17' and OperDate<'2005-02-18'

解决方案 »

  1.   

    where substring(convert(char(20),OperDate,20),1,11)='2005-02-17'对字段 OperDate 进行了处理,所以要查数据的话,会进行全表扫描,而且无法利用索引
      

  2.   

    zjcxc(邹建) 大侠:真幸运第一次提问就得到你得答复'2005-02-17' 这个时间是系统得不是我指定得
    譬如今天是2005-02-18 那么
    select * from table1 where substring(convert(char(20),OperDate,20),1,11)='2005-02-18'
    如果是2-19 那么就是 2005-02-19 时间是系统给得 不是我指定得 我在这里指定它只是想看看这个语句会不会有什么效率方面得问题
      

  3.   

    --转换系统时间就行了select * from table1 
    where OperDate>=convert(char(10),getdate(),120)
      and OperDate<convert(char(10),getdate()+1,120)
      

  4.   

    谢谢大侠,如果在OperDate加上INDEX,再这样用SQL做得话 数据量大也不会有什么效率影响得吧
    给你上分了