sql >> Base de Datos >  >> RDS >> Mysql

Suma dateiff en minutos con MySQL

Tu condición

WHERE tStart >= '2011-04-04' AND tEnd <= '2011-04-04'

Más o menos garantiza que los únicos registros que quedarán son donde

tStart = tEnd = '2011-04-04'

No hace falta decir que DATEDIFF entre ellos da 0, para una gran suma total de 0. De hecho, DATEDIFF ignora la porción de tiempo, por lo que necesita usar TIMEDIFF + TIME_TO_SEC

SELECT SUM(TIME_TO_SEC(TIMEDIFF(tEnd, tStart))/60)
FROM tasks
WHERE tStart >= '2011-04-04' AND tEnd <= adddate('2011-04-04', interval 1 day)

Observe el cambio en la cláusula WHERE. Si está tratando de decir, comenzó en cualquier momento de hoy y finalizó en cualquier momento de hoy, entonces el rango debería ser (ya asumiendo inicio

WHERE tStart >= '2011-04-04'
  AND tEnd < adddate('2011-04-04', interval 1 day)

Puede codificarlo en 2011-04-05, pero usando < (menos de) y agregar un día al límite final es lo que muestro aquí.