SQL Server DATEDIFF 函数用于查找或计算开始日期和结束日期之间的差值。datediff 函数始终返回一个有符号整数值。例如,如果您想从现有日期中提取年份、月份或季度,可以使用此 Datediff 函数。
SQL DATEDIFF 函数语法
DATEDIFF(Datepart, Start Date, End Date)
Datepart:这是给定日期的部分,用于计算开始日期和结束日期之间的差值。SQL Server 中 DATEDIFF 可用的 datepart 参数列表。
| 日期部分 | 缩写 | 描述 |
|---|---|---|
| 年 | yy, yyyy | 以年为单位显示开始日期和结束日期之间的差值 |
| 季度 | qq, q | 此 Datepart 以季度为单位显示开始日期和结束日期之间的差值 |
| 月 | mm, m | 以月为单位显示开始日期和结束日期之间的差值 |
| 年中的第几天 | dy, y | 以一年的天数(1 到 365)为单位显示开始日期和结束日期之间的差值 |
| 日 | dd, d | Sql Server Datediff 中的此 Datepart 以天数(1 到 31)为单位显示开始日期和结束日期之间的差值 |
| 周 | wk, ww | 以周为单位显示开始日期和结束日期之间的差值 |
| 星期几 | dw, w | 以工作日为单位显示开始日期和结束日期之间的差值 |
| 小时 | hh | 此 Datepart 以小时为单位显示开始日期和结束日期之间的差值 |
| 分钟 | mi, n | 以分钟为单位显示开始日期和结束日期之间的差值 |
| 秒 | ss, s | 以秒为单位显示开始日期和结束日期之间的差值 |
| 毫秒 | ms | 以毫秒为单位显示开始日期和结束日期之间的差值 |
| 微秒 | mcs | 此 Datediff 参数以微秒为单位显示开始日期和结束日期之间的差值 |
| 纳秒 | ns | 它将以纳秒为单位打印开始日期和结束日期之间的差值。 |
Start:请将有效日期指定为第二个参数(开始日期)。它可以是列、表达式或任何 SQL Server 变量。
End:请将有效日期指定为第三个参数(结束日期)。它可以是列、表达式或任何变量。
SQL DATEDIFF 函数示例
在此 Datediff 示例中,我们将声明两个 datetime2 数据类型的变量。我们为这两个变量分配有效日期,并执行所有可用的操作。
首先,我们声明了两个变量 @ab 和 @cd,并为这些变量分配了不同的日期和时间。在第一个语句(year, @ab, @cd)中,Datediff 函数打印 @ab 变量和 @cd 之间的总年数。
接下来,我们要求该函数显示 @ab 和 @cd 变量之间的总月数。

DATEDIFF 示例 2
在此示例中,我们使用自定义表对 Hire 列和内置的 GETDATE() 函数执行 SQL Datediff 操作。第 5 行的第一个语句查找 Hire 列和今天的差值(以年为单位)。
在下一行中,此 DATEDIFF 函数将查找 Hire 列和今天的差值(以季度为单位)。同样,您可以选择毫秒、小时、分钟、天数和工作日。
