select * from school Where testtime <= datediff(MONTH,-2,getdate())
select * from school Where testtime <= dateadd(MONTH,-2,getdate())
上面datediff 連邏輯都不用塞顯示時間就錯了
下面單獨執行看目前日期+1 -1都正常
我要從school裡面找出目前日期+2個月就到期的資料
但我撈出來的資料都不是11/19 ~ 1/19的資料 請問上面邏輯錯在哪?
應該是這樣:testtime 介於 2019/11/19 ~ 2020/1/19
select * from school
Where testtime >= getdate()
and testtime <= dateadd(MONTH,2,getdate())
如果你用的是
select * from school Where testtime <= dateadd(MONTH,2,getdate())
抓出來的應該是全部小於1/19的資料,
因為你沒有設下限給他.
declare @school table(
testtime date
)
insert into @school
values('2020/2/5')
,('2020/1/4')
,('2020/3/3')
,('2019/12/8')
,('2020/4/24')
select * from @school Where datediff(m, Convert(date,GetDate()), Convert(date,testtime) ) <= 2