Вашето състояние
WHERE tStart >= '2011-04-04' AND tEnd <= '2011-04-04'
Доста досигурява че единствените записи, които ще останат, са къде
tStart = tEnd = '2011-04-04'
Разбира се, че DATEDIFF между тях дава 0, за обща обща сума от 0. Всъщност DATEDIFF игнорира частта от времето, така че трябва да използвате 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)
Забележете промяната в клаузата WHERE. Ако се опитвате да кажете, започнал по всяко време днес и приключил по всяко време днес, тогава диапазонът трябва да бъде (вече се предполага начало <край)
WHERE tStart >= '2011-04-04'
AND tEnd < adddate('2011-04-04', interval 1 day)
Можете да го кодирате твърдо до 2011-04-05, но с помощта на <
(по-малко от) и добавянето на един ден към крайното ограничение е това, което показвам тук.