Din tilstand
WHERE tStart >= '2011-04-04' AND tEnd <= '2011-04-04'
Stort set sikrer at de eneste poster, der vil være tilbage, er hvor
tStart = tEnd = '2011-04-04'
Det siger sig selv, at DATEDIFF mellem dem giver 0, for en totalsum på 0. Faktisk ignorerer DATEDIFF tidsdelen, så du skal bruge 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)
Bemærk ændringen af WHERE-klausulen. Hvis du prøver at sige, startede når som helst i dag og sluttede når som helst i dag, så skal intervallet være (allerede forudsat start
WHERE tStart >= '2011-04-04'
AND tEnd < adddate('2011-04-04', interval 1 day)
Du kan hardkode det til 2011-04-05, men ved at bruge <
(mindre end) og tilføjelse af én dag til slutgrænsen er, hvad jeg viser her.