Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Soma datediff em minutos com MySQL


Sua condição
WHERE tStart >= '2011-04-04' AND tEnd <= '2011-04-04'

Praticamente garante que os únicos registros que serão deixados são onde
tStart = tEnd = '2011-04-04'

Escusado será dizer que DATEDIFF entre eles dá 0, para uma soma total geral de 0. Na verdade, DATEDIFF ignora a parte do tempo, então você precisa 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 a alteração na cláusula WHERE. Se você está tentando dizer, começou a qualquer hora hoje e terminou a qualquer hora hoje, então o intervalo deve ser (já assumindo início
WHERE tStart >= '2011-04-04'
  AND tEnd < adddate('2011-04-04', interval 1 day)

Você pode codificá-lo para 2011-04-05, mas usando < (menor que) e adicionar um dia ao limite final é o que estou mostrando aqui.