在本教程中,将学习如何使用SQL Server DATEADD()函数将指定值添加到日期的指定日期部分。
SQL Server DATEADD()函数简介
DATEADD()函数将数字值添加到输入日期的指定日期部分,并返回修改后的值。
以下是DATEADD()函数的语法:
DATEADD (date_part , value , input_date )
DATEADD()函数接受三个参数:
- date_part参数是- DATEADD()函数将添加值的日期部分(参见下表中的有效日期部分)。
- value参数是要添加到- input_date的- date_part部分的整数。如果值的计算结果为十进制或浮点数,则函数- DATEADD()将截断小数部分。 在这种情况下,它不会对数字进行舍入。
- input_date参数是文字日期值或表达式,可以将它们解析为:DATE,- DATETIME,- DATETIMEOFFSET,DATETIME2,- SMALLATETIME或TIME类型的值。
下表列出了date_part的有效值:
| date_part | 缩写形式 | 
|---|---|
| year | yy, yyyy | 
| quarter | qq, q | 
| month | mm, m | 
| dayofyear | dy, y | 
| day | dd, d | 
| week | wk, ww | 
| hour | hh | 
| minute | mi, n | 
| second | ss, s | 
| millisecond | ms | 
| microsecond | mcs | 
| nanosecond | ns | 
DATEADD()函数在将值添加到date_part后返回新的日期值。
SQL Server DATEADD()函数示例
下面来看一些使用DATEDIFF()函数的例子。
将1秒钟加到2019-12-31 23:59:59,如下查询语句:
SELECT 
    DATEADD(second, 1, '2019-12-31 23:59:59') result;
执行上面查询语句,得到以下结果:
result
-----------------------
2020-01-01 00:00:00.000
(1 行受影响)
将1天加到2019-12-31 23:59:59,如下查询语句:
SELECT 
    DATEADD(day, 1, '2019-12-31 23:59:59') result;
执行上面查询语句,得到以下结果:
result
-----------------------
2020-01-01 23:59:59.000
下面示例使用DATEADD()函数根据订购日期计算估计的发货日期:
SELECT 
    order_id, 
    customer_id, 
    order_date,
    DATEADD(day, 2, order_date) estimated_shipped_date
FROM 
    sales.orders
WHERE 
    shipped_date IS NULL
ORDER BY 
    estimated_shipped_date DESC;
执行上面查询语句,得到以下结果:

处理月份的示例
如果向日期添加了几个月且日期结果的日期不存在,则DATEDIFF()函数将返回返回月份的最后一天。
请参阅以下示例:
SELECT 
    DATEADD(month, 4, '2020-05-31') AS result;
在此示例中,返回日期的月份是9月。 但是,9月份不存在第31日,因此,DATEDIFF()函数返回9月(30)的最后一天作为结果日期的日期:
result
-----------------------
2020-09-30 00:00:00.000
(1 row affected)
请注意,以下查询返回相同的结果:
SELECT 
    DATEADD(month,4,'2019-05-30') AS result;
执行上面查询语句,得到以下结果:
result
-----------------------
2019-09-30 00:00:00.000
(1 row affected)
在本教程中,学习了如何使用SQL Server DATEDIFF()函数将指定值添加到日期的日期部分。
						上一篇:
								SQL Server日期函数
												下一篇:
								SQL Server字符串函数
												
						
						
					
					
					