sql >> Database >  >> RDS >> Mysql

Som datediff in minuten met MySQL

Uw toestand

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

Vrijwel zorgt dat de enige records die overblijven zijn waar

tStart = tEnd = '2011-04-04'

Het spreekt voor zich dat DATEDIFF tussen hen 0 geeft, voor een totaalbedrag van 0. In feite, DATEDIFF negert het tijdsgedeelte, dus je moet TIMEDIFF + TIME_TO_SEC

. gebruiken
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)

Let op de wijziging in de WHERE-clausule. Als je probeert te zeggen, vandaag op elk moment begonnen en vandaag op elk moment eindigde, dan zou het bereik (reeds aangenomen begin moeten zijn

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

Je kunt het hard coderen naar 05-04-2011, maar met < (minder dan) en een dag toevoegen aan de eindlimiet is wat ik hier laat zien.




  1. Splitfunctie in orakel naar door komma's gescheiden waarden met automatische volgorde

  2. bulk lijstwaarden invoegen met SQLAlchemy Core

  3. Databaseontwerp - Push-model of Fan-out-on-write

  4. Salesforce-gegevens vertalen naar EDI-indeling