不要用createTime>=' 2014-10-20 00:00:00'  and  createTime<='2014-10-20 23:59:59 '这种方法这种写法明显也不合理createTime>=' 2014-10-20'  and  createTime<'2014-10-21'这样就可以了,如果你的意思要用 CONVERT什么的,那种没这种快

解决方案 »

  1.   

    用范围比较是最快的,为什么不用?
    不过datetime 是有毫秒的,应该写成
    -- @queryDate 为 datetime 类型,值为无时间的 2014-10-20
    createTime>=@queryDate and createTime<DateAdd(day,1,@queryDate)
      

  2.   

    DECLARE @Dt DATETIME
    SET @Dt='2014-10-20'
    SELECT  *
    FROM    table1 AS a
    WHERE   NOT EXISTS ( SELECT 1
                         FROM   table1
                         WHERE  stuNAme = a.stuNAme
                                AND createTime < a.createTime )
    AND createTime>=@Dt AND createTime<@Dt+1
      

  3.   

    datediff(dd,createTime,'2014-10-20')=0
      

  4.   

    select * from 表 where ( SELECT   CONVERT(varchar(11), createTime, 120))='2014-10-20'
      

  5.   

    datediff(dd,createTime,'2014-10-20')=0
      

  6.   

    datediff(dd,createTime,'2014-10-20')=0
      

  7.   

    select * from  table1 where CONVERT(VARCHAR(10),createTime,23)=‘2014-10-20’
      

  8.   

    select * from  table1 where  createTime between '2014-10-20 00:00:00' and '2014-10-20 23:59:59'楼主能不能说说为什么不要用你说的方法