时差(以分钟为单位)

时间:2019-02-09 19:46:49

标签: mysql database

我正在尝试计算到凌晨00:00的剩余分钟数。

DELIMITER //
CREATE PROCEDURE midnightCountdown()
BEGIN
SELECT TIME_FORMAT(TIMEDIFF('24:00:00', CURRENT_TIME()),'%i');
END //
DELIMITER ;

但是它将剩余的分钟数分配给下一个整小时:

  

TIME_FORMAT(TIMEDIFF('24:00:00',CURRENT_TIME()),'%i')

     

16

我检查了WAMP程序中的当前时间,它是正确的,与系统时间相同。

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

采用这种方法,您将忽略TIMEDIFF之后的时间。因此,您需要提取小时数并将其乘以60,然后将值添加到提取分钟数中:

SELECT TIME_FORMAT(TIMEDIFF('24:00:00', CURRENT_TIME()),'%i')
     + TIME_FORMAT(TIMEDIFF('24:00:00', CURRENT_TIME()),'%H') * 60;

另一种方法是将TIME_DIFF转换为秒,然后将其(整数除法)除以60:

SELECT TIME_TO_SEC(TIMEDIFF('24:00:00', CURRENT_TIME())) DIV 60;

注意:在两种情况下,您都将获得完整分钟的时间。这意味着在23:59:30处的结果将是0