Разница между данными datetime в SQL

#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 . . . Я не уверен, что вы имеете в виду под этим. Это количество секунд между двумя значениями (или часами или днями), включая временную составляющую.