MySQL - TIMEDIFF() 函数
MySQL TIMEDIFF() 函数接受两个时间或日期时间值作为参数,计算它们之间的差值(参数 1-参数 2)并返回结果。此函数的两个参数必须是同一类型(时间或日期时间)。
如果两个参数中有一个为 NULL,则此函数返回 NULL 值。
与仅从时间值中减去指定时间间隔的 SUBTIME() 函数不同,MySQL TIMEDIFF() 函数用于从日期时间或时间值中减去指定的时间间隔。
语法
以下是 MySQL TIMEDIFF() 函数的语法 -
TIMEDIFF(expr1, expr2)
参数
此方法接受两个时间表达式(日期时间或时间),您需要将其作为参数来计算差值。
返回值
此函数返回 expr1 和 expr2 之间的时间差,以时间值的形式显示。结果格式为"hh:mm:ss"。
示例
在以下查询中,我们使用 MySQL TIMEDIFF() 函数计算给定时间值之间的时间差 -
SELECT TIMEDIFF('20:10;00', '15:10:00') As Result;
输出
这将产生以下结果 -
Result |
---|
05:00:00 |
示例
在这里,我们将 DATETIME 值作为参数传递给函数,以计算它们之间的时间差 -
SELECT TIMEDIFF('2018-05-23 18:00:00', '2018-05-23 12:00:00') As Result;
输出
以下是输出结果 -
Result |
---|
06:00:00 |
示例
在下面的示例中,我们将 CURTIME() 的结果作为参数传递给 TIMEDIFF() 函数 -
SELECT TIMEDIFF('20:00:00', CURTIME()) As Result;
输出
以下是输出 -
Result |
---|
08:14:43 |
示例
在此示例中,我们使用以下 CREATE TABLE 查询创建了一个名为 SUBSCRIBERS 的表 -
CREATE TABLE SUBSCRIBERS( NAME varchar(255), PACKAGE varchar(255), SubscriptionDate date, SubscriptionTime time );
现在,使用 INSERT 语句将以下记录插入到 SUBSCRIBERS 表中 -
INSERT INTO SUBSCRIBERS VALUES ('Raja', 'Premium', Date('2020-10-21'), Time('04:00:00')), ('Roja', 'Basic', Date('2020-11-26'), Time('10:15:00')), ('Puja', 'Moderate', Date('2021-03-07'), Time('05:40:30')), ('Vanaja', 'Basic', Date('2021-02-21'), Time('02:30:00')), ('Jalaja', 'Premium', Date('2021-01-30'), Time('05:45:15'));
执行以下查询以获取上述创建的表中的所有插入记录 -
Select * From SUBSCRIBERS;
以下是 SUBSCRIBERS 表 -
NAME | PACKAGE | SubscriptionDate | SubscriptionTime |
---|---|---|---|
Raja | Premium | 2020-10-21 | 04:00:00 |
Roja | Basic | 2020-11-26 | 10:15:00 |
Puja | Moderate | 2021-03-07 | 05:40:30 |
Vanaja | Basic | 2021-02-21 | 02:30:00 |
Jalaja | Premium | 2021-01-30 | 05:45:15 |
现在,我们使用 MySQL TIMEDIFF() 函数来计算当前时间和"SubscriptionTime"列之间的时间差 -
SELECT NAME, PACKAGE, TIMEDIFF(CURTIME(), SubscriptionTime) As RemainingTime FROM SUBSCRIBERS;
输出
输出显示如下 −
NAME | PACKAGE | SubscriptionTime |
---|---|---|
Raja | Premium | 08:15:58 |
Roja | Basic | 02:00:58 |
Puja | Moderate | 06:35:28 |
Vanaja | Basic | 09:45:58 |
Jalaja | Premium | 06:30:43 |