SQL DATEADD

SQL Server DATEADD 函数可用于将特定时间间隔添加到现有日期。例如,对于每个产品订单,我们将保存订购日期,并可以使用此 Dateadd 函数来生成预期的交货日期。

SQL DATEADD 语法

DATEADD (Datepart, Number, Date)

在上面,Datepart 是我们即将添加 SQL Server Dateadd 函数的 Number 参数的给定数据的一部分。下表将显示 dateadd 函数中可用的 datepart 参数列表。

日期部分缩写描述
yy, yyyy这将添加指定年数(第二个参数)
季度qq, q添加指定季度数(第二个参数)
mm, m添加月份
年中的第几天dy, y此参数将添加一年中的某一天
dd, d这将添加指定天数
wk, ww添加指定周数(第二个参数)
星期几dw, w添加工作日
小时hh它将添加小时
分钟mi, n它添加指定分钟数。
ss, s添加秒
毫秒ms此 dateadd 参数将添加毫秒
微秒mcs添加微秒
纳秒ns添加纳秒

日期:请将有效的 SQL Server 日期指定为第三个参数,它可以是列、表达式或任何变量。

数字:请指定您希望为此 dateadd 函数添加的数字。

  • 如果您将正整数指定为第二个参数(数字),它将向给定日期添加指定数字。
  • 如果您指定负整数,该函数将从中减去。
  • 并且,如果您将小数指定为第二个参数(数字)。此 Dateadd 函数将截断小数部分,并将指定数字添加到给定的日期时间。

SQL DATEADD 正整数

在此 Dateadd 示例中,我们将正整数用作第二个参数。在此 transact 查询中,我们声明了一个变量并将日期和时间赋给了该变量。

(year, 1, @dtVal) –此 dateadd 函数将向给定日期添加 1 年。接下来,(month, 1, @dtVal) 向给定日期添加 1 个月。

SQL Server Dateadd Function 1

SQL Server DATEADD 中的负整数

在此 Dateadd 示例中,我们使用负整数作为第二个参数。

DATEADD Function with Negative numbers

我们要求向给定日期添加 1 年,但该函数从中减去了 1 年。这是因为负值可用于减法(year, -1, @dVl)。

我们要求 SQL Server Dateadd 函数向给定日期添加 1 个月,但它从中减去了 1 个月。这是因为负值将用于减法(month, -1, @dVl)。

DATEADD 小数

在此 Date Function 示例中,我们将小数用作第二个参数。

DECLARE @dtValue datetime2 = '2015-01-01 14:24:04.1234567'
SELECT 'YEAR' AS [D Part], DATEADD(year, 2.23, @dtValue) AS [New D T] 
UNION ALL
SELECT 'QUARTER', DATEADD(quarter, 3.98, @dtValue) 
UNION ALL
SELECT 'MONTH', DATEADD(month, -4.51, @dtValue)
DATEADD function on Decimal Values 3

我们要求 Dateadd 函数向给定日期添加 2.23 年,但它只添加了 2 年。这是因为 .23 值被截断了。

我们要求向给定日期添加 4.51 个月,但该函数从给定日期中减去了 4 个月。这是因为负值用于减法,并且 .51 值被截断了。