SQL DATEDIFF

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, dSql 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 Function Example 1

DATEDIFF 示例 2

在此示例中,我们使用自定义表对 Hire 列和内置的 GETDATE() 函数执行 SQL Datediff 操作。第 5 行的第一个语句查找 Hire 列和今天的差值(以年为单位)。

在下一行中,此 DATEDIFF 函数将查找 Hire 列和今天的差值(以季度为单位)。同样,您可以选择毫秒、小时、分钟、天数和工作日。

DATEDIFF on Table Column