SQL Server日期时间加减函数–DATEDIFF、DateAdd

时间:2025-05-10 20:41:52

SQL Server日期时间加减函数–DATEDIFF、DateAdd

目录

  • SQL Server日期时间加减函数–DATEDIFF、DateAdd
    • 一、时间加减函数之DATEDIFF
        • 语法
        • 2. datepart: 时间类型
        • 示列
    • 二、时间的加减函数之 DATEADD
        • 语法
        • 2. datepart: 时间类型
        • 示列
    • 三、其它日期加减函数
    • 四、总结

一、时间加减函数之DATEDIFF

语法
DATEDIFF(datepart,startdate,enddate)
描述:
datepart: 时间类型 比如天、周、年
startdate、enddate :是开始时间和结束时间
2. datepart: 时间类型
datepart 缩写
yy, yyyy
季度 qq, q
mm, m
年中的日 dy, y
dd, d
wk, ww
星期 dw, w
小时 hh
分钟 mi, n
ss, s
毫秒 ms
微妙 mcs
纳秒 ns
示列
SELECT DATEDIFF(HH,'2023-05-07 16:00:00',GETDATE()); --1,两时间相比较小时相差1个小时
SELECT DATEDIFF(yy,'2020-05-07 16:00:00',GETDATE()); --3,两时间相比较小时相差3年

二、时间的加减函数之 DATEADD

语法
DATEADD(datepart,number,date)
描述:
datepar :时间规格(年、月、日等)
number: 加减数量
date :以什么时间为准
2. datepart: 时间类型
datepart 缩写
yy, yyyy
季度 qq, q
mm, m
年中的日 dy, y
dd, d
wk, ww
星期 dw, w
小时 hh
分钟 mi, n
ss, s
毫秒 ms
微妙 mcs
纳秒 ns
示列
SELECT DATEADD(WEEK, 1, GETDATE()); --2023-05-14 17:40:25.960 当前时间加一周
SELECT DATEADD(MM, 5, GETDATE()); --2023-10-07 17:41:35.910 当前时间加5个月
SELECT DATEADD(yy, -1, GETDATE()); --2022-05-07 17:42:22.337 当前时间减1年

三、其它日期加减函数

语法

datepart (datepart,getdate())-返回代表指定日期的指定日期部分的整数。
SELECT DATEPART(mm, GETDATE()); --返回 5 
SELECT DATEPART(WEEK, GETDATE()); --返回 19 

语法

datename (datepart,getdate())-返回代表指定日期的指定日期部分的字符串
SELECT DATENAME(dw, GETDATE()); --返回:星期日
SELECT DATENAME(Wk, GETDATE()); --返回 19 今年的19周

四、总结

函数 参数/功能
DateDiff (datepart,date1,date2) 以datepart指定的方式,返回date2 与date1两个日期之间的差值 date2-date1
DateAdd (datepart,number,date) 以datepart指定的方式,加上number之后的日期
DatePart (datepart,date) 返回日期date中,datepart指定部分所对应的整数值
DateName (datepart,date) 返回日期date中,datepart指定部分所对应的字符串名称