MSSQL计算当前日期和指定日期的时间差(天数差/小时差/分钟差等)
SQL SERVER数据库需要计算当前日期和文章发布日期的时间差,如天数差(相差多少天)、小时差(相差多少小时)或分钟差(相差多少分钟),可以使用GETDATE()
函数获取当前的日期时间,使用DateDiff()
函数返回两个日期之间的时间间隔,间隔的数值可以是年、季度、月、一年的日数、日、一周的日数、周、小时、分钟和秒。
语法
DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])
参数:
参数 | 描述 |
interval | 必选。表示用于计算 date1 和 date2 之间的时间间隔。有关数值,“设置”部分。 |
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
下一篇 >>