SQL Server 函数

SQL Server (Transact-SQL) DATEADD() 函数将数字(有符号整数)添加到输入日期的日期部分,并返回修改后的日期/时间。

通过 DATEADD()函数我们可以计算2个小时之前或者2个小时之后的时间。

例如,要查找距离当前时间 1000 分钟的日期,可以将以下参数传递给此函数:

  • number = 1000
  • datepart= minute
  • date= CURRENT_TIMESTAMP

语法

DATEADD(datepart, number, date) 

参数

datepart

必需. 指定要添加的间隔的单位类型。它可以是以下值之一:

日期缩写
yearyy, yyyy
quarterqq, q
monthmm, m
dayofyeardy, y
daydd, d
weekwk, ww
weekdaydw, w
hourhh
minutemi, n
secondss, s
millisecondms
microsecondmcs
nanosecondns
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 包含以下记录:

EmpIDNameLogin StampExpected Logout Stamp
1John2019-10-25 09:20:382019-10-25 17:50:38
2Marry2019-10-25 09:21:052019-10-25 17:51:05
3Jo2019-10-25 09:24:352019-10-25 17:54:35
4Kim2019-10-25 09:25:242019-10-25 17:55:24
5Ramesh2019-10-25 09:27:162019-10-25 17:57:16

要在此表中插入新记录,可以使用以下语句。

INSERT INTO EmployeeLogin 
VALUES (6, 'Suresh', CURRENT_TIMESTAMP, DATEADD(mi, 510, CURRENT_TIMESTAMP));

-- 查看结果
SELECT * FROM EmployeeLogin; 

这将产生一个结果类似于:

EmpIDNameLogin StampExpected Logout Stamp
1John2019-10-25 09:20:382019-10-25 17:50:38
2Marry2019-10-25 09:21:052019-10-25 17:51:05
3Jo2019-10-25 09:24:352019-10-25 17:54:35
4Kim2019-10-25 09:25:242019-10-25 17:55:24
5Ramesh2019-10-25 09:27:162019-10-25 17:57:16
6Suresh2019-10-25 09:28:192019-10-25 17:58:19