在本教學中,將學習如何使用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字串函數