MariaDB 函数

MariaDB SUBTIME() 函数从时间/日期时间值中减去指定的时间间隔,然后返回修改后的时间/日期时间值。

使用这个以负 time 值作为参数的函数相当于使用 ADDTIME() 函数。

语法

SUBTIME(datetime, time) 

参数

datetime必需。 指定应从中减去时间间隔的时间/日期时间值。
time必填。 指定从日期时间中减去的时间间隔。允许正值和负值。

返回值

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

示例1:

下面的示例展示了SUBTIME()函数的用法。

SELECT SUBTIME('2019-10-25 08:10:25', '5.000010');
Result: '2019-10-25 08:10:19.999990'

SELECT SUBTIME('2019-10-25 08:10:25', '10:5.000010');
Result: '2019-10-24 22:05:24.999990'

SELECT SUBTIME('2019-10-25 08:10:25', '2:10:5.000010');
Result: '2019-10-25 06:00:19.999990'

SELECT SUBTIME('2019-10-25 08:10:25', '3 2:10:5.000010');
Result: '2019-10-22 06:00:19.999990'

SELECT SUBTIME('2019-10-25 08:10:25', '-3 2:10:5.000010');
Result: '2019-10-28 10:20:30.000010'

SELECT SUBTIME('01:20:35', '5.000010');
Result: '01:20:29.999990'

SELECT SUBTIME('01:20:35', '10:5.000010');
Result: '-08:44:25.000010'

SELECT SUBTIME('01:20:35', '5:10:5.000010');
Result: '-03:49:30.000010'

SELECT SUBTIME('01:20:35', '-5:10:5.000010');
Result: '06:30:40.000010' 

示例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', NOW(), SUBTIME(NOW(), '-8:30');

-- 查看结果
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