SQL Server DATEDIFF 函数是一个日期函数,用于返回两个日期值之间的差异。DATEDIFF 函数的语法如下:
DATEDIFF ( datepart , startdate , enddate )
其中,datepart 是指定要返回的时间间隔的单位,如年、月、日、时、分、秒等。startdate 和 enddate 是要比较的两个日期值,可以是日期字面量或者日期表达式。
DATEDIFF 函数的返回值是一个整数,表示 datepart 单位的差异。例如,如果 datepart 是年,那么返回值就是两个日期之间相差的年数。如果 datepart 是月,那么返回值就是两个日期之间相差的月数,以此类推。
下面是一些使用SQLServer DATEDIFF 函数的示例:
示例一、返回 2021 年 9 月 8 日和 2020 年 9 月 8 日之间相差的年数
SELECT DATEDIFF(year, '2020-09-08', '2021-09-08') AS YearDiff;
返回值为 1
示例二、返回 2021 年 9 月 8 日和 2020 年 9 月 8 日之间相差的月数
SELECT DATEDIFF(month, '2020-09-08', '2021-09-08') AS MonthDiff;
返回值为 12
示例三、返回 2021 年 9 月 8 日和 2020 年 9 月 8 日之间相差的天数
SELECT DATEDIFF(day, '2020-09-08', '2021-09-08') AS DayDiff;
返回值为 365
示例四、返回当前日期和时间与指定日期和时间之间相差的小时数
SELECT DATEDIFF(hour, '2021-09-07 12:00:00', GETDATE()) AS HourDiff;
返回值取决于当前日期和时间
注意:DATEDIFF 函数只计算 datepart 单位的整数部分,不考虑小数部分。例如,如果 datepart 是年,那么只比较两个日期的年份,不考虑月份和日期。因此,’2020-12-31′ 和 ‘2021-01-01’ 的年差为 1,而不是接近于 0。