MySQL TIMEDIFF() 函数返回两个时间/日期时间值之间的差异。返回值表示为时间值。
使用TIMEDIFF()函数时,两个参数都必须是时间值或日期时间值。当一个参数用作时间值,另一个参数用作日期时间值时,此函数返回 NULL 值。
时间值(返回值)的范围可以从 '-838:59:59' 到 ' 838:59:59'。
语法
TIMEDIFF(time1, time2)
参数
time1 | 必填。 指定第一个时间或日期时间值来计算差值(time1 - time2)。 |
time2 | 必填。 指定第二个时间或日期时间值来计算差值(time1 - time2)。 |
返回值
返回两个时间/日期时间值之间的差异。
示例 1:
下面的示例显示TIMEDIFF()的用法
mysql> SELECT TIMEDIFF('12:40:45', '10:20:25');
Result: '02:20:20'
mysql> SELECT TIMEDIFF('2019-10-25 12:40:45', '2019-10-25 10:20:25');
Result: '02:20:20'
mysql> SELECT TIMEDIFF('2019-10-25 12:40:45.001234', '2019-10-25 10:20:25.001000');
Result: '02:20:20.000234'
mysql> SELECT TIMEDIFF('10:20:25', '12:40:45');
Result: '-02:20:20'
mysql> SELECT TIMEDIFF('2019-10-25 12:40:45', '10:20:25');
Result: NULL
示例 2:
考虑一个名为 EmployeeLogin 的数据库表,其中包含以下记录:
EmpID | Name | Date | LoginTime | LogoutTime |
---|---|---|---|---|
1 | John | 2019-10-25 | 09:20:38 | 17:55:38 |
2 | Marry | 2019-10-25 | 09:21:05 | 17:50:38 |
3 | Jo | 2019-10-25 | 09:24:35 | 18:20:38 |
4 | Kim | 2019-10-25 | 09:25:24 | 17:50:38 |
5 | Ramesh | 2019-10-25 | 09:27:16 | 18:10:38 |
要计算每个员工在办公室花费的时间,可以使用以下查询:
SELECT *, TIMEDIFF(LogoutTime, LoginTime) AS OfficeTime
FROM EmployeeLogin;
这将产生类似于以下内容的结果:
EmpID | Name | Date | LoginTime | LogoutTime | OfficeTime |
---|---|---|---|---|---|
1 | John | 2019-10-25 | 09:20:38 | 17:55:38 | 08:35:00 |
2 | Marry | 2019-10-25 | 09:21:05 | 17:50:38 | 08:29:33 |
3 | Jo | 2019-10-25 | 09:24:35 | 18:20:38 | 08:56:03 |
4 | Kim | 2019-10-25 | 09:25:24 | 17:50:38 | 08:25:14 |
5 | Ramesh | 2019-10-25 | 09:27:16 | 18:10:38 | 08:43:22 |