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í.