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.