Tình trạng của bạn
WHERE tStart >= '2011-04-04' AND tEnd <= '2011-04-04'
Khá nhiều đảm bảo rằng các bản ghi duy nhất sẽ được để lại ở đâu
tStart = tEnd = '2011-04-04'
Không cần phải nói rằng DATEDIFF giữa chúng cho 0, với tổng tổng là 0. Trên thực tế, DATEDIFF bỏ qua phần thời gian, vì vậy bạn cần sử dụng 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)
Lưu ý sự thay đổi đối với mệnh đề WHERE. Nếu bạn đang cố gắng nói, bắt đầu bất kỳ lúc nào hôm nay và kết thúc bất kỳ lúc nào hôm nay, thì phạm vi phải là (đã giả sử bắt đầu
WHERE tStart >= '2011-04-04'
AND tEnd < adddate('2011-04-04', interval 1 day)
Bạn có thể cố định mã nó thành 2011-04-05, nhưng sử dụng <
(ít hơn) và thêm một ngày vào giới hạn cuối cùng là những gì tôi đang hiển thị ở đây.