表A有一个日期时间字段,现在需要查询YYYY-MM 到 YYYY-MM范围内的所有数据SQL语句怎么写?比如  2012-03,2013-04之间的所有数据?

解决方案 »

  1.   

    将日期转化为字符串,然后用left函数截取7就可以了
      

  2.   

    SELECT *
      FROM 表名  where time between CONVERT(datetime, '2013-03-01') and CONVERT(datetime, '2013-04-01')
      

  3.   

    分两步走:
    1 生成两个日期 @d1 = '2012-03-01' 和 @d2 = '2013-05-01'
    2 然后比较 field>=@d1 and field<@d2
      

  4.   

    SELECT *
    FROM 表
    where 日期时间字段>='2013-03'+'-01' and 日期时间字段<dateadd(mm,1,'2013-04'+'-01')
      

  5.   

    其实换个思路就行, 2012-03,2013-04 可以组合成2012-03-01 00:00:00.000 到2012-04-31 23:59:59.997 ,然后between and即可。
      

  6.   

    或者用convert(varchar(7),日期,23)最好了