Mysql
 sql >> Base de données >  >> RDS >> Mysql

Somme datediff en minutes avec MySQL

Votre état

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

À peu près garantit que les seuls enregistrements qui resteront sont où

tStart = tEnd = '2011-04-04'

Il va sans dire que DATEDIFF entre eux donne 0, pour une somme totale de 0. En fait, DATEDIFF ignore la partie heure, vous devez donc utiliser 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)

Notez la modification de la clause WHERE. Si vous essayez de dire, a commencé n'importe quand aujourd'hui et s'est terminé n'importe quand aujourd'hui, alors la plage devrait être (en supposant déjà début

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

Vous pouvez le coder en dur en 2011-04-05, mais en utilisant < (moins de) et ajouter un jour à la limite de fin est ce que je montre ici.