MariaDB ADDDATE() 函数将指定的时间/日期间隔添加到日期/日期时间值,然后返回修改后的日期/日期时间值。
此函数(版本 1 语法)是 DATE_ADD() 函数的同义词。
使用此函数并以负值作为参数相当于使用 SUBDATE() 函数。
语法
/* 版本 1 */
ADDDATE(datetime, INTERVAL value unit)
/* 版本 2 */
ADDDATE(datetime, days)
参数
datetime | 必需。 指定要修改的日期或日期时间值。 |
days | 必填。 指定添加到日期时间的天数。允许正值和负值。 |
value | 必填。 指定要添加的时间/日期间隔的值。允许正值和负值。 |
unit | 必填。 指定要添加的间隔的单位类型。它可以是以下值之一:
|
返回值
返回修改后的日期/日期时间值。
示例 1:
下面的示例显示了 ADDDATE() 函数的用法。
SELECT ADDDATE('2019-10-25', 10);
Result: '2019-11-04'
SELECT ADDDATE('2019-10-25', INTERVAL 10 DAY);
Result: '2019-11-04'
SELECT ADDDATE('2019-10-25 08:10:25', INTERVAL 2 HOUR);
Result: '2019-10-25 10:10:25'
SELECT ADDDATE('2019-10-25 08:10:25', INTERVAL -2 HOUR);
Result: '2019-10-25 06:10:25'
SELECT ADDDATE('2019-10-25 08:10:25', INTERVAL 30 MINUTE);
Result: '2019-10-25 08:40:25'
SELECT ADDDATE('2019-10-25 08:10:25', INTERVAL -10 SECOND);
Result: '2019-10-25 08:10:15'
SELECT ADDDATE('2019-10-25 08:10:25', INTERVAL 1 WEEK);
Result: '2019-11-01 08:10:25'
SELECT ADDDATE('2019-10-25', INTERVAL -2 MONTH);
Result: '2019-08-25'
SELECT ADDDATE('2019-10-25', INTERVAL 2 QUARTER);
Result: '2020-04-25'
SELECT ADDDATE('2019-10-25', INTERVAL 2 YEAR);
Result: '2021-10-25'
SELECT ADDDATE('2019-10-25 08:10:25', INTERVAL 10 MICROSECOND);
Result: '2019-10-25 08:10:25.000010'
SELECT ADDDATE('2019-10-25 08:10:25', INTERVAL '5.0000010' SECOND_MICROSECOND);
Result: '2019-10-25 08:10:30.000010'
SELECT ADDDATE('2019-10-25 08:10:25', INTERVAL '10:5.0000010' MINUTE_MICROSECOND);
Result: '2019-10-25 08:20:30.000010'
SELECT ADDDATE('2019-10-25 08:10:25', INTERVAL '10:5' MINUTE_SECOND);
Result: '2019-10-25 08:20:30'
SELECT ADDDATE('2019-10-25 08:10:25', INTERVAL '2:10:5.0000010' HOUR_MICROSECOND);
Result: '2019-10-25 10:20:30.000010'
SELECT ADDDATE('2019-10-25 08:10:25', INTERVAL '2:10:5' HOUR_SECOND);
Result: '2019-10-25 10:20:30'
SELECT ADDDATE('2019-10-25 08:10:25', INTERVAL '2:10' HOUR_MINUTE);
Result: '2019-10-25 10:20:25'
SELECT ADDDATE('2019-10-25 08:10:25', INTERVAL '3 2:10:5.0000010' DAY_MICROSECOND);
Result: '2019-10-28 10:20:30.000010'
SELECT ADDDATE('2019-10-25 08:10:25', INTERVAL '3 2:10:5' DAY_SECOND);
Result: '2019-10-28 10:20:30'
SELECT ADDDATE('2019-10-25 08:10:25', INTERVAL '3 2:10' DAY_MINUTE);
Result: '2019-10-28 10:20:25'
SELECT ADDDATE('2019-10-25 08:10:25', INTERVAL '3 2' DAY_HOUR);
Result: '2019-10-28 10:10:25'
SELECT ADDDATE('2019-10-25 08:10:25', INTERVAL '2 5' YEAR_MONTH);
Result: '2022-03-25 08:10:25'
示例 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', NOW(), ADDDATE(NOW(), INTERVAL '8:30' HOUR_MINUTE));
-- 查看结果
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 |