MSSQL计算当前日期和指定日期的时间差(天数差/小时差/分钟差等)

SQL SERVER数据库需要计算当前日期和文章发布日期的时间差,如天数差(相差多少天)、小时差(相差多少小时)或分钟差(相差多少分钟),可以使用GETDATE()函数获取当前的日期时间,使用DateDiff()函数返回两个日期之间的时间间隔,间隔的数值可以是年、季度、月、一年的日数、日、一周的日数、周、小时、分钟和秒。

语法

DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])
参数:
参数 描述
interval 必选。表示用于计算 date1date2 之间的时间间隔。有关数值,“设置”部分。
date1, date2 必选。日期表达式。用于计算的两个日期。
firstdayofweek 可选。指定星期中第一天的常数。如果没有指定,则默认为星期日。有关数值,“设置”部分。
firstweekofyear 可选。指定一年中第一周的常数。如果没有指定,则默认为 1 月 1 日所在的星期。有关数值,“设置”部分。
设置

interval 参数可以有以下值:

设置 描述
yyyy
q 季度
m
y 一年的日数
d
w 一周的日数
ww
h 小时
n 分钟
s

firstdayofweek 参数可以有以下值:

常数 描述
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbSunday 1 星期日(默认)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六

firstweekofyear 参数可以有以下值:

常数 描述
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbFirstJan1 1 由 1 月 1 日所在的星期开始(默认)。
vbFirstFourDays 2 由在新年中至少有四天的第一周开始。
vbFirstFullWeek 3 由在新的一年中第一个完整的周开始。

示例:

返回间隔的天数
select DATEDIFF(dd,'2022-12-25',GETDATE()) as time
返回间隔的小时
select DATEDIFF(hh,'2022-12-25',GETDATE()) as time
关键词: sql查询 SqlServer