Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Sum datediff in Minuten mit MySQL

Ihr Zustand

WHERE tStart >= '2011-04-04' AND tEnd <= '2011-04-04'

So ziemlich sichert dass die einzigen Aufzeichnungen, die übrig bleiben, wo sind

tStart = tEnd = '2011-04-04'

Es versteht sich von selbst, dass DATEDIFF zwischen ihnen 0 ergibt, für eine Gesamtsumme von 0. Tatsächlich wird DATEDIFF ignoriert der Zeitanteil, also müssen Sie TIMEDIFF + TIME_TO_SEC

verwenden
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)

Beachten Sie die Änderung an der WHERE-Klausel. Wenn Sie versuchen zu sagen, heute zu irgendeinem Zeitpunkt begonnen und heute zu irgendeinem Zeitpunkt geendet haben, sollte der Bereich (bereits unter der Annahme von Start sein

WHERE tStart >= '2011-04-04'
  AND tEnd < adddate('2011-04-04', interval 1 day)

Sie können es bis zum 05.04.2011 fest codieren, aber mit < (weniger als) und das Hinzufügen eines Tages zum Endlimit ist das, was ich hier zeige.