日期函数DATEDIFF() 计算日期之差

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

你可能感兴趣的:(总结,大数据,sql)