SQL Server (Transact-SQL) DATEADD() 函数将数字(有符号整数)添加到输入日期的日期部分,并返回修改后的日期/时间。
通过 DATEADD()函数我们可以计算2个小时之前或者2个小时之后的时间。
例如,要查找距离当前时间 1000 分钟的日期,可以将以下参数传递给此函数:
- number = 1000
- datepart= minute
- date= CURRENT_TIMESTAMP
语法
DATEADD(datepart, number, date)
参数
datepart |
| ||||||||||||||||||||||||||||
number | 必需. 一个整数,指定要添加的单位值。正值和负值都是允许的。 | ||||||||||||||||||||||||||||
date | 必需. 指定要修改的日期值. |
返回值
返回修改后的日期/时间值。
示例1:
下面的示例显示了 DATEADD() 函数的用法。
SELECT DATEADD(year, 5, '2019-10-25');
Result: '2024-10-25 00:00:00'
SELECT DATEADD(yyyy, 5, '2019-10-25');
Result: '2024-10-25 00:00:00'
SELECT DATEADD(yy, 5, '2019-10-25');
Result: '2024-10-25 00:00:00'
SELECT DATEADD(quarter, 2, '2019-10-25');
Result: '2020-04-25 00:00:00'
SELECT DATEADD(month, -2, '2019-10-25');
Result: '2019-08-25 00:00:00'
SELECT DATEADD(week, 1, '2019-10-25 08:10:25');
Result: '2019-11-01 08:10:25'
SELECT DATEADD(day, 10, '2019-10-25');
Result: '2019-11-04 00:00:00'
SELECT DATEADD(hh, 2, '2019-10-25 08:10:25');
Result: '2019-10-25 10:10:25'
SELECT DATEADD(hh, -2, '2019-10-25 08:10:25');
Result: '2019-10-25 06:10:25'
SELECT DATEADD(mi, 30, '2019-10-25 08:10:25');
Result: '2019-10-25 08:40:25'
SELECT DATEADD(ss, -10, '2019-10-25 08:10:25');
Result: '2019-10-25 08:10:15'
示例 2:
考虑一个名为EmployeeLogin 包含以下记录:
EmpID | Name | Login Stamp | Expected Logout Stamp |
---|---|---|---|
1 | John | 2019-10-25 09:20:38 | 2019-10-25 17:50:38 |
2 | Marry | 2019-10-25 09:21:05 | 2019-10-25 17:51:05 |
3 | Jo | 2019-10-25 09:24:35 | 2019-10-25 17:54:35 |
4 | Kim | 2019-10-25 09:25:24 | 2019-10-25 17:55:24 |
5 | Ramesh | 2019-10-25 09:27:16 | 2019-10-25 17:57:16 |
要在此表中插入新记录,可以使用以下语句。
INSERT INTO EmployeeLogin
VALUES (6, 'Suresh', CURRENT_TIMESTAMP, DATEADD(mi, 510, CURRENT_TIMESTAMP));
-- 查看结果
SELECT * FROM EmployeeLogin;
这将产生一个结果类似于:
EmpID | Name | Login Stamp | Expected Logout Stamp |
---|---|---|---|
1 | John | 2019-10-25 09:20:38 | 2019-10-25 17:50:38 |
2 | Marry | 2019-10-25 09:21:05 | 2019-10-25 17:51:05 |
3 | Jo | 2019-10-25 09:24:35 | 2019-10-25 17:54:35 |
4 | Kim | 2019-10-25 09:25:24 | 2019-10-25 17:55:24 |
5 | Ramesh | 2019-10-25 09:27:16 | 2019-10-25 17:57:16 |
6 | Suresh | 2019-10-25 09:28:19 | 2019-10-25 17:58:19 |