• 全部
  • 基础类
  • 应用实例
  • 新技术前沿

求表中最后两个月的数据

ralphchen 2004-12-20 04:24:17
根据表中的一个时间字段,选出所有记录中最后两个月的全部数据.
...全文
68 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
vinsonshen 2004-12-20
同意楼上的
回复
didoleo 2004-12-20
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
)
回复
mschen 2004-12-20
--楼上写的语句有问题,会把所有的记录都查出来的.最后两个月,是当前时间的最后两个月.还是记录里边最大时间的最后两个月!

select * from t where 时间字段 >=dateadd(month,-2,getdate()) --以当前日期为准

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

--以表的最大日期为准
回复
dulei115 2004-12-20
改一下 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)
回复
dulei115 2004-12-20
select * from tablename
where datetimefield > dateadd(month, -2, (select max(datetimefield)
from tablename))
回复
didoleo 2004-12-20
select * from 表 where convert(char(7),时间字段,120) in (
select top 2 convert(char(7),时间字段,120) as 月份 from 表 order by convert(char(7),时间字段,120) desc
)
回复
LBYYBL 2004-12-20
看下dateadd,datediff等时间函数的联机帮助都可以搞定
回复
LBYYBL 2004-12-20
select * from t where 时间字段>=dateadd(month,-2,时间字段)
回复
skyboy0720 2004-12-20
你的时间字段是什么类型的?
回复
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2004-12-20 04:24
社区公告
暂无公告