MariaDB 函数

MariaDB TIMEDIFF() 函数返回两个时间/日期时间值之间的差异。返回值表示为时间值。

使用TIMEDIFF()函数时,两个参数都必须是时间值或日期时间值。当一个参数用作时间值,另一个参数用作日期时间值时,此函数返回 NULL 值。

时间值(返回值)的范围可以从 '-838:59:59' 到 ' 838:59:59'。

语法

TIMEDIFF(time1, time2) 

参数

time1必填。 指定第一个时间或日期时间值来计算差值(time1 - time2)。
time2必填。 指定第二个时间或日期时间值来计算差值(time1 - time2)。

返回值

返回两个时间/日期时间值之间的差异。

示例 1:

下面的示例显示TIMEDIFF()的用法

SELECT TIMEDIFF('12:40:45', '10:20:25');
Result: '02:20:20'

SELECT TIMEDIFF('2019-10-25 12:40:45', '2019-10-25 10:20:25');
Result: '02:20:20'

SELECT TIMEDIFF('2019-10-25 12:40:45.001234', '2019-10-25 10:20:25.001000');
Result: '02:20:20.000234'

SELECT TIMEDIFF('10:20:25', '12:40:45');
Result: '-02:20:20'

SELECT TIMEDIFF('2019-10-25 12:40:45', '10:20:25');
Result: NULL 

示例 2:

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

EmpIDNameDateLoginTimeLogoutTime
1John2019-10-2509:20:3817:55:38
2Marry2019-10-2509:21:0517:50:38
3Jo2019-10-2509:24:3518:20:38
4Kim2019-10-2509:25:2417:50:38
5Ramesh2019-10-2509:27:1618:10:38

要计算每个员工在办公室花费的时间,可以使用以下查询:

SELECT *, TIMEDIFF(LogoutTime, LoginTime) AS OfficeTime
FROM EmployeeLogin; 

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

EmpIDNameDateLoginTimeLogoutTimeOfficeTime
1John2019-10-2509:20:3817:55:3808:35:00
2Marry2019-10-2509:21:0517:50:3808:29:33
3Jo2019-10-2509:24:3518:20:3808:56:03
4Kim2019-10-2509:25:2417:50:3808:25:14
5Ramesh2019-10-2509:27:1618:10:3808:43:22