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 中的负整数
在此 Dateadd 示例中,我们使用负整数作为第二个参数。

我们要求向给定日期添加 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 函数向给定日期添加 2.23 年,但它只添加了 2 年。这是因为 .23 值被截断了。
我们要求向给定日期添加 4.51 个月,但该函数从给定日期中减去了 4 个月。这是因为负值用于减法,并且 .51 值被截断了。