MariaDB 函数

MariaDB TIMESTAMPADD() 函数将指定的间隔添加到日期或日期时间值,然后返回修改后的值。 interval 的单位由 unit 参数指定,可以是以下值之一:MICROSECOND、SECOND、MINUTE、HOUR、DAY、WEEK、MONTH、QUARTER或 YEAR。

可以使用所示的关键字之一或使用 SQL_TSI_ 前缀来指定单位值。例如,DAY 和 SQL_TSI_DAY 都可以使用。

语法

TIMESTAMPADD(unit, interval, datetime) 

参数

datetime必填。 指定要修改的日期或日期时间值。
interval必填。 指定要添加的间隔值。允许正值和负值。
unit必填。 指定要添加的间隔的单位类型。它可以是以下值之一:
  • MICROSECOND
  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR

返回值

返回修改后的日期/日期时间值。

示例 1:

下面的示例显示了TIMESTAMPADD() 函数的用法。

SELECT TIMESTAMPADD(DAY, 10, '2019-10-25');
Result: '2019-11-04'

SELECT TIMESTAMPADD(SQL_TSI_DAY, 10, '2019-10-25');
Result: '2019-11-04'

SELECT TIMESTAMPADD(HOUR, 2, '2019-10-25 08:10:25');
Result: '2019-10-25 10:10:25'

SELECT TIMESTAMPADD(HOUR, -2, '2019-10-25 08:10:25');
Result: '2019-10-25 06:10:25'

SELECT TIMESTAMPADD(MINUTE, 30, '2019-10-25 08:10:25');
Result: '2019-10-25 08:40:25'

SELECT TIMESTAMPADD(SECOND, -10, '2019-10-25 08:10:25');
Result: '2019-10-25 08:10:15'

SELECT TIMESTAMPADD(WEEK, 1, '2019-10-25 08:10:25');
Result: '2019-11-01 08:10:25'

SELECT TIMESTAMPADD(MONTH, -2, '2019-10-25');
Result: '2019-08-25'

SELECT TIMESTAMPADD(QUARTER, 2, '2019-10-25');
Result: '2020-04-25'

SELECT TIMESTAMPADD(YEAR, 2, '2019-10-25');
Result: '2021-10-25'

SELECT TIMESTAMPADD(MICROSECOND, 10, '2019-10-25 08:10:25');
Result: '2019-10-25 08:10:25.000010' 

示例 2:

考虑一个名为 EmployeeLogin 的数据库表,其中包含以下记录:

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

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

INSERT INTO EmployeeLogin 
VALUES (6, 'Suresh', NOW(), TIMESTAMPADD(HOUR, 8, NOW()));

-- 查看结果
SELECT * FROM EmployeeLogin; 

这将产生类似于以下内容的结果:

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