Разница во времени в минутах - PullRequest
0 голосов
/ 09 февраля 2019

Я пытаюсь рассчитать оставшиеся минуты до 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 голосов
/ 09 февраля 2019

При вашем подходе вы игнорируете часы с 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...