select * from t where 时间字段>=dateadd(month,-2,时间字段)

解决方案 »

  1.   

    看下dateadd,datediff等时间函数的联机帮助都可以搞定
      

  2.   

    select * from 表 where convert(char(7),时间字段,120) in (
    select top 2 convert(char(7),时间字段,120) as 月份 from 表 order by convert(char(7),时间字段,120) desc
    )
      

  3.   

    select * from tablename
    where datetimefield > dateadd(month, -2, (select max(datetimefield)
    from tablename))
      

  4.   

    改一下 didoleo(冷月无声) 的
    select * from 表 
    where convert(char(7),时间字段,120) in (
    select distinct top 2 convert(char(7),时间字段,120) as 月份 from 表 order by convert(char(7),时间字段,120) desc)
      

  5.   

    --楼上写的语句有问题,会把所有的记录都查出来的.最后两个月,是当前时间的最后两个月.还是记录里边最大时间的最后两个月!select * from t where 时间字段 >=dateadd(month,-2,getdate())  --以当前日期为准select * from t where 时间字段 >=dateadd(month,-2,(select max(时间字段) from t))
     
                                                                 --以表的最大日期为准
      

  6.   

    dulei115() 对的 .
    或者 加 group by 
    select * from 表 where convert(char(7),时间字段,120) in (
    select top 2 convert(char(7),时间字段,120) as 月份 from 表 
    group by convert(char(7),时间字段,120)
    order by convert(char(7),时间字段,120) desc
    )