select * from 表 where convert(char(7),时间字段,120) in ( select top 2 convert(char(7),时间字段,120) as 月份 from 表 order by convert(char(7),时间字段,120) desc )
select * from tablename where datetimefield > dateadd(month, -2, (select max(datetimefield) from tablename))
改一下 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)
--楼上写的语句有问题,会把所有的记录都查出来的.最后两个月,是当前时间的最后两个月.还是记录里边最大时间的最后两个月!select * from t where 时间字段 >=dateadd(month,-2,getdate()) --以当前日期为准select * from t where 时间字段 >=dateadd(month,-2,(select max(时间字段) from t))
--以表的最大日期为准
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 )
select top 2 convert(char(7),时间字段,120) as 月份 from 表 order by convert(char(7),时间字段,120) desc
)
where datetimefield > dateadd(month, -2, (select max(datetimefield)
from tablename))
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)
--以表的最大日期为准
或者 加 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
)