本帖最后由 sxssg 于 2011-12-13 23:21:34 编辑

解决方案 »

  1.   

    SELECT * 
      FROM 表A
      where datediff(day,[ADD_TIME], '2011-09-24')=0
      

  2.   


    where datediff(day,[ADD_TIME], '2011-09-24')=0请问一下这句什么意思呢,谢谢!
      

  3.   

    SELECT * 
      FROM 表A
      where convert(varchar(10),[ADD_TIME],120)='2011-09-24'
      

  4.   

    SELECT * 
      FROM 表A
      where datediff(dd,[ADD_TIME] , '2011-09-24') = 0SELECT * 
      FROM 表A
      where convert(varchar(10),[ADD_TIME] , 120) = '2011-09-24'
      

  5.   


    if object_id('tb') is not null
       drop table tb
    go
    create table tb
    (
     id int identity(1,1),
     add_time datetime,
     sl int
    )
    go
    insert into tb (add_time,sl)
    select '2011-09-22 11:23:52',2 union all
    select '2011-09-24 11:36:52',4 union all
    select '2011-09-24 14:21:52',2 union all
    select '2011-09-24 15:25:52',3 union all
    select '2011-09-24 15:06:52',3 union all
    select '2011-09-24 19:36:52',1 union all
    select '2011-09-24 20:36:52',7 union all
    select '2011-09-24 22:36:52',11 union all
    select '2011-09-24 20:36:52',12
    go
    SELECT * 
      FROM tb
      where convert(varchar(10),add_time,120)='2011-09-24'   --把日期格式化成yyyy-mm-dd格式再比较
    go
    /*
    id          add_time                sl
    ----------- ----------------------- -----------
    2           2011-09-24 11:36:52.000 4
    3           2011-09-24 14:21:52.000 2
    4           2011-09-24 15:25:52.000 3
    5           2011-09-24 15:06:52.000 3
    6           2011-09-24 19:36:52.000 1
    7           2011-09-24 20:36:52.000 7
    8           2011-09-24 22:36:52.000 11
    9           2011-09-24 20:36:52.000 12(8 行受影响)
    */
      

  6.   


    因为like是对所有字符进行模糊查询,DATETIME类型是不支持隐式转换的,需要使用convert()或cast()函数转换成字符类型,你说用其他列没问题,这里的其他列可以是int类型或者字符类型方可
      

  7.   

    这样都不行吗?查出来的结果为空,是不是DATETIME类型不支持呢,我用其它列又没有问题的回答:不行,datetime类型不能用like来操作 ,like只能操作字符类型,如需用like必须convert() OR cast()