Váš stav
WHERE tStart >= '2011-04-04' AND tEnd <= '2011-04-04'
Docela zajišťuje že jediné záznamy, které zůstanou, jsou kde
tStart = tEnd = '2011-04-04'
Je samozřejmé, že DATEDIFF mezi nimi dává 0, tedy celkový součet 0. Ve skutečnosti DATEDIFF ignoruje časovou část, takže musíte použít 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)
Všimněte si změny klauzule WHERE. Pokud se snažíte říci, začalo kdykoli dnes a skončilo kdykoli dnes, rozsah by měl být (již za předpokladu začátku
WHERE tStart >= '2011-04-04'
AND tEnd < adddate('2011-04-04', interval 1 day)
Můžete to napevno zakódovat na 2011-04-05, ale pomocí <
(méně než) a přidání jednoho dne ke konečnému limitu je to, co zde ukazuji.