select * from users where convert(varchar(10),joindate,120)='2005-07-30'select * from users where datediff(day,joindate,'2005-07-30')=0

解决方案 »

  1.   

    如你要查询这个日期的话,想要使用模糊查询的话,只能这样写select * from users where joindate like '%2005%'
     and  joindate like '%07%' and joindate like '%30%'所以当你想要查询日期某个字段的准备日期时,建议这样写:select * from users where joindate='2005-07-30'
      

  2.   

    解释一下:下面是一些使用日期和时间数据的准则: 
    1、若要对日期和时间进行精确搜索匹配,请使用等号(=)。
    SQL Server 以 12:00:00:000 AM(默认值)的精确时间形式返回年、月、日都完全匹配的日期和时间值。所以对于精确的时期,不能使用模糊查询。2、若要搜寻日期或时间的一部分,请使用 LIKE 运算符。
      

  3.   

    可是。。还是还有个小问题。
    怎么把datatime类型格式转变为(yyyy-MM-dd)
    因为现在的数据都是2005-07-31 后面还有小时分秒等等数据阿
    想等的还是出不来。
      

  4.   


    为什么不用datediffselect * from users where datediff(year,'2005',joindate )=0
    select * from users where datediff(year,'2005-07-30',joindate )=0