sql >> Databáze >  >> RDS >> Mysql

Sečtěte datum v minutách s MySQL

Váš stav

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

Docela zajišťuje že jediné záznamy, které zůstanou, jsou kde

tStart = tEnd = '2011-04-04'

Je samozřejmé, že DATEDIFF mezi nimi dává 0, tedy celkový součet 0. Ve skutečnosti DATEDIFF ignoruje časovou část, takže musíte použít 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)

Všimněte si změny klauzule WHERE. Pokud se snažíte říci, začalo kdykoli dnes a skončilo kdykoli dnes, rozsah by měl být (již za předpokladu začátku

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

Můžete to napevno zakódovat na 2011-04-05, ale pomocí < (méně než) a přidání jednoho dne ke konečnému limitu je to, co zde ukazuji.




  1. Získejte název sloupce z jeho ID na serveru SQL:COL_NAME()

  2. Převést časový řetězec na desetinné hodiny PHP

  3. Jak vybrat řádky, kde hodnota sloupce NENÍ NULL, pomocí ActiveRecord CodeIgniter?

  4. Pracovníci Rails Resque selžou s PGError:server neočekávaně ukončil připojení