定义
datediff()
函数返回两个日期之间的时间。
语法
datediff(datepart,startdate,enddate)
startdate
和 enddate
参数是合法的日期表达式。
datepart
参数可以是下列的值:
实例
--计算当前日期和指点日期之间的时间间隔
--当前日期:2019-07-14 22:16:59.647 (因时间一直在表所以存在误差) 指定日期:2018-07-13
select getDATE()
--1、年
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
--2、季度
select datediff(quarter,'2018-07-13',getdate());--output:4
--3、一年的日数(按年来计算有多少天)
select datediff(dayofyear,'2018-07-14',getdate());--output:365
select datediff(y,'2018-07-13','2019-07-14');--output:366
--4、月
select datediff(month,'2018-07-13',getdate());--output:12
--5、日
select datediff(day,'2018-07-13',getdate());--output:366
select datediff(day,'2018-07-13','2019-07-13');--output:365
--6、周
select datediff(week,'2018-07-13',getdate());--output:53
select datediff(ww,'2019-06-13',getdate());--output:5
--7、一周的日数(按周来计算有多少天)
select datediff(w,'2018-07-13',getdate());--output:366
select datediff(w,'2019-06-13',getdate());--output:31
--8、小时
select datediff(hour,'2018-07-13',getdate());--output:8806
select datediff(hour,'2019-07-13',getdate());--output:46(24+22点)
--9、分钟
select datediff(minute,'2019-07-14 11:00:00',getdate());--output:675
--10、秒
select datediff(second,'2019-07-14 11:00:00',getdate());--output:40584
--11、毫秒
select datediff(millisecond,'2019-07-14 11:00:00',getdate());--output:40597113
案例
来一个复杂一点的语句,查询未过期但一个月内将过期商品
select * from goods
where datediff(day,GETDATE(),Expire)<=30
and datediff(day,GETDATE(),Expire)>0
网友评论