Как получить разницу между двумя датами, округленными до часов
Я проиллюстрирую, что я хотел бы получить в следующем примере:
'2010-09-01 03:00:00' - '2010-09-01 00:10:00'
Используя TIMEDIFF()
, получаем в результате 2. Это означает, что это не означает, что осталось 50 минут.
В этом случае я хотел бы получить: 50 (минут)/60 = 0,83 периода. Следовательно, результат должен быть 2,83, а не 2.
Ответы
Ответ 1
select time_to_sec(timediff('2010-09-01 03:00:00', '2010-09-01 00:10:00' )) / 3600;
+-----------------------------------------------------------------------------+
| time_to_sec(timediff('2010-09-01 03:00:00', '2010-09-01 00:10:00' )) / 3600 |
+-----------------------------------------------------------------------------+
| 2.8333 |
+-----------------------------------------------------------------------------+
Ответ 2
Я думаю, что более полный ответ
select time_format(timediff(onedateinstring,anotherdateinstring),'%H:%i:%s')
Это позволяет вам видеть часы, минуты, секунды и т.д., которые вы хотите видеть в нужном формате...
Дополнительная информация о time_format: http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_time-format
Ответ 3
Вы можете попробовать следующее:
time_format(timediff(max(l.fecha), min(l.fecha) ),'%H:%m') //Hora y minutos
Ответ 4
Это очень старый поток, но вы также можете попробовать TIMESTAMPDIFF и дать MINUTE, HOUR, SECONDS в качестве квалификатора.
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_timestampdiff
Ответ 5
Используйте TIMESTAMPDIFF для точного количества часов:
SELECT
b.`Start_Date`,
b.`End_Date`,
TIMESTAMPDIFF(HOUR, b.`Start_Date`, b.`End_Date`) AS `HOURS`
FROM my_table b;
Ответ 6
MySQL получает количество часов между отметками времени:
select timestampdiff(second,'2010-09-01 00:10:00', '2010-09-01 03:00:00')/3600;
Ответ 7
Если вы используете временную метку, это может быть решением в MySQL с использованием SQL.
SELECT TIMESTAMPDIFF(HOUR, '2010-11-29 13:13:55', '2010-11-29 13:16:55') as newtable;
| newtable |
7
1 row in set (0.01 sec)