Разница в MySql между двумя метками времени в секундах?
Можно ли рассчитать разницу между двумя временными метками в Mysql и получить результат в секундах? like 2010-11-29 13:16:55 - 2010-11-29 13:13:55 должно дать 180 секунд.
Спасибо
Ответ 1
Используйте UNIX_TIMESTAMP функцию, чтобы преобразовать DATETIME в значение в секундах, начиная с 1 января 1970 года:
SELECT UNIX_TIMESTAMP('2010-11-29 13:16:55') - UNIX_TIMESTAMP('2010-11-29 13:13:55') as output
Результат:
output
-------
180
Простой способ справиться, если вы не уверены, какое значение больше, чем другое - используйте функцию ABS:
SELECT ABS(UNIX_TIMESTAMP(t.datetime_col1) - UNIX_TIMESTAMP(t.datetime_col2)) as output
Ответ 2
Я не думаю, что принятый ответ - хорошее универсальное решение!
Это связано с тем, что функция UNIX_TIMESTAMP() завершилась с ошибкой для DATE до 1970-01-01 (а для дат в далеком будущем с использованием 32-битных целых чисел). Это может произойти легко для дня рождения многих живых людей.
Который может быть изменен, чтобы возвращать ДЕНЬ ГОДНОГО МЕСЯЦА и МИНУТ тоже!
Ответ 3
Метод TIMESTAMPDIFF работает только с форматом datetime. Если вы хотите разницу между двумя разными типами: "11:10: 00" минус "10: 20: 00", используйте