datediff()
函数返回两个日期之间的时间。
detediff(datepart,startdate.endddate)
satrtdate和enddate是你要计算的开始时间和截止时间
datepart可以是下面的值:
年,月 ,周,日,时,分,秒
举例:
getdate() 注释:当前日期
下图所示:
假如今天是七月十四号
1 七月十三和七月十四就返回一
2七月十四就和七月十三返回负一
3七月十四和七月十四则返回0
select datediff(year,'2018-07-13',getdate());--output:1
select datediff(year,getdate(),'2018-07-13');--output:-1
select datediff(year,getdate(),getdate());--output:0
QUARTER(date) 注释:返回当前季度 一般是1-4
select datediff(quarter,'2018-07-13',getdate());--output:4
同理后面 月 日 周 类似:
月:
select datediff(month,'2018-07-13',getdate());--output:12
日:
select datediff(day,'2018-07-13',getdate());--output:366
select datediff(day,'2018-07-13','2019-07-13');--output:365
周:
select datediff(week,'2018-07-13',getdate());--output:53
select datediff(ww,'2019-06-13',getdate());--output:5
一周的天数 按照周有几天来计算:
select datediff(w,'2018-07-13',getdate());--output:366
select datediff(w,'2019-06-13',getdate());--output:31
小时:
select datediff(w,'2018-07-13',getdate());--output:366
select datediff(w,'2019-06-13',getdate());--output:31
分钟:
select datediff(minute,'2019-07-14 11:00:00',getdate());--output:675
秒:
select datediff(minute,'2019-07-14 11:00:00',getdate());--output:675
毫秒:
select datediff(minute,'2019-07-14 11:00:00',getdate());--output:675
最后举例:
查询一个超时要过期未过期 但是有一个月就要过期的商品:
select * from goods
where datediff(day,GETDATE(),Expire)<=30
and datediff(day,GETDATE(),Expire)>0