#mysql #sql
#mysql #sql
Вопрос:
как я могу найти разницу между двумя хранилищами DateTime в базе данных MySQL, например, разница в часах между 2016-03-09 04:30:00 и 2016-03-10 03:00:00. я пробовал dateDiff (), но он не сравнивает часы, которые необходимы, чтобы увидеть разницу между (2016-03-09 04:30:00) — (2016-03-10 03:10:00). порядок — год-месяц-дневное время
Вывод, который мне нужен, — это количество часов между этими временами, также учитывающее время.
Комментарии:
1. Какое значение вы ищете?
2. Количество часов между двумя датами времени @GordonLinoff
Ответ №1:
Вы можете использовать TIMESTAMPDIFF
, чтобы найти разницу между двумя временными метками
SELECT TIMESTAMPDIFF(HOUR,'2009-05-18 10:00','2009-05-18 11:00');
Если вам нужна доля (например, 1,5 часа) часов, вы можете сделать, как показано ниже
SELECT (UNIX_TIMESTAMP('2012-10-30 10:40')-UNIX_TIMESTAMP('2012-10-30 10:30'))/3600 hour_diff
Комментарии:
1. Мне нужна разница между временем, а не только датами
2. Обновил мой ответ, пожалуйста, проверьте
3. Спасибо @timus2001, это именно то, что мне было нужно
Ответ №2:
Один простой метод заключается в использовании to_seconds()
:
select to_seconds(dt1) - to_seconds(dt2)
Это дает разницу в секундах. Затем вы можете разделить на 60 * 60, чтобы получить часы или 24*60*60 в течение нескольких дней.
Комментарии:
1. Это сравнивает только даты, а не время @GordonLinoff
2. @johnnitro . . . Я не уверен, что вы имеете в виду под этим. Это количество секунд между двумя значениями (или часами или днями), включая временную составляющую.