求sql 日期相差指定月数的数据

hfyanzi 2016-09-02 04:34:29
表 A

id statedate info
1 2016-11-01 x
1 2016-11-02 u
1 2016-11-03 z
1 2016-11-04 y

今天时期 2016-09-02

想得到距今日刚好2个月的数据

1 2016-11-02 u
...全文
407 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ginnnnnnnn 2016-09-02
  • 打赏
  • 举报
回复
--如果字段格式是date 可以用这种方法 select * from table where startdate = dateadd(mm,2,getdate()) --如果是datetime select * from table where startdate >= convert(varchar(10),dateadd(mm,2,getdate()),120) and startdate < convert(varchar(10),dateadd(mm,2,getdate())+1,120)
Mr_Nice 2016-09-02
  • 打赏
  • 举报
回复
--> 测试数据: [TA]
if object_id('[TA]') is not null drop table [TA]
create table [TA] (id int,statedate datetime,info varchar(1))
insert into [TA]
select 1,'2016-11-01','x' union all
select 1,'2016-11-02','u' union all
select 1,'2016-11-03','z' union all
select 1,'2016-11-04','y'

select * from [TA]



SELECT  *
FROM    TA
WHERE   DATEDIFF(mm, GETDATE(), statedate) = 2
        AND DATEPART(dd, statedate) = DATEPART(dd, GETDATE());

/*
id	statedate	info
1	2016-11-02 00:00:00.000	u*/

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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