求表中最后两个月的数据

ralphchen 2004-12-20 04:24:17
根据表中的一个时间字段,选出所有记录中最后两个月的全部数据.
...全文
98 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
你的时间字段是什么类型的?

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧