0

MySQL: разница между двумя метками времени в секундах?

20

Возможно ли вычислить разницу между двумя временными отметками в MySQL и получить результат в секундах?

Например, выражение 2010-11-29 13:16:55 - 2010-11-29 13:13:55 должно возвращать 180 секунд.

Спасибо.

2 ответ(ов)

1

Я не считаю, что принятый ответ является универсальным решением!

Это связано с тем, что функция UNIX_TIMESTAMP() не работает с датами до 1970-01-01 (а также с датами в далеком будущем, если использовать 32-битные целые числа). Это может легко произойти, например, для даты рождения многих живущих людей.

Лучшим решением будет следующее:

SELECT TIMESTAMPDIFF(SECOND, '2010-11-29 13:13:55', '2010-11-29 13:16:55')

Эту конструкцию можно модифицировать, чтобы возвращать разницу в днях, годах, месяцах, часах и минутах!

0

Метод TIMESTAMPDIFF работает только с форматом datetime. Если вам необходимо вычислить разницу между двумя временем, например, '11:10:00' и '10:20:00', вы можете воспользоваться следующим запросом:

SELECT TIME_TO_SEC('11:10:00') - TIME_TO_SEC('10:20:00');

Этот запрос преобразует строки времени в секунды и вычисляет их разницу.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь