आपकी हालत
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 तक हार्ड कोड कर सकते हैं, लेकिन <
. का उपयोग करके (इससे कम) और एक दिन को अंतिम सीमा में जोड़ना वही है जो मैं यहां दिखा रहा हूं।