funciones - Diferencia en minutos de dos campos de tiempo en MySQL
timestampdiff (4)
Configuré mi base de datos MySQL con el campo ''tiempo''
No es HH: MM en el sentido tradicional, es el momento en que ocurrió un evento, por lo que un evento con el valor de 5:45 ocurrió con 5 minutos y 45 segundos por jugar en un juego. 12:25 ocurrió con 12 minutos y 25 segundos restantes, etc.
Me gustaría poder saber el tiempo total transcurrido, por lo que si tengo un evento que ocurrió a las 12:25 y el siguiente evento a las 5:45 quiero poder obtener la diferencia, que sería igual a 6:40. Entonces, me gustaría expresar esto como un decimal, en este caso 6.67.
es posible?
Gracias por adelantado.
Necesitaba similar. Dos funciones útiles: TIME_TO_SEC y SUBTIME .
por ejemplo, si sus campos de tiempo eran normales HH: MM veces, entonces
SELECT (TIME_TO_SEC(end_time) - TIME_TO_SEC(start_time))/60 AS `minutes`
En su caso, como yo lo entiendo, los tiempos están al revés, es decir. 12:00<6:00
por lo que su fin_tiempo y tiempo_de_inicio necesitarán un intercambio.
Si quisieras la salida en HH: MM: SS podrías hacer
SELECT SUBTIME(end_time, start_time)
Para mí esto funcionó:
TIMESTAMPDIFF(MINUTE, T0.created, T0.modified)
Referencia: https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_timestampdiff
Solo usa
TIMEDIFF(fromtime, totime):
SELECT TIMEDIFF("12:25", "5:45");
Si necesita un decimal, use TIME_TO_SEC()/3600
(se supone que pasó segundos, pero el formato en el que está almacenando los tiempos es vago y SQL probablemente los interpretará como HH: MM; puede corregirlo con CONCAT("00:",MinuteSecondField)
quizás?) - entonces puedes usar TIME_TO_SEC()/60
, que es más correcto)
Usé UNIX_TIMESTAMP (evento1) -UNIX_TIMESTAMP (evento2), lo que te da segundos entre eventos. Divídalo por 60.0 y obtendrá un decimal según su requisito. Esta solución supone que sus columnas son valores compatibles con la fecha. Funcionará muy rápido si son TIMESTAMPs.
ACTUALIZACIÓN: esta solución solo funciona con los tipos de datos de marca de tiempo, no con tipos de datos de tiempo como en la pregunta original.