Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Sumuj datediff w minutach z MySQL

Twój stan

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

Prawie zapewnia że jedyne rekordy, które pozostaną, to tam, gdzie

tStart = tEnd = '2011-04-04'

Nie trzeba dodawać, że DATEDIFF między nimi daje 0, co daje całkowitą sumę 0. W rzeczywistości DATEDIFF ignoruje część czasu, więc musisz użyć 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)

Zwróć uwagę na zmianę w klauzuli WHERE. Jeśli chcesz powiedzieć, że rozpoczął się o dowolnej porze dzisiaj i zakończył o dowolnej porze dzisiaj, zakres powinien wynosić (już zakładając początek

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

Możesz zakodować go na stałe do 2011-04-05, ale używając < (mniej niż) i dodanie jednego dnia do limitu końcowego jest tym, co pokazuję tutaj.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Popraw wydajność zapytań wyszukiwania pełnotekstowego MySQL

  2. Zmienna dynamiczna aktualizacji zapytania formularza POST php

  3. Usuń duplikaty z listy obiektów za pomocą Pythona

  4. Jak naprawić alert Security Advisor MySQL?

  5. jQuery Autouzupełnianie Mysql PHP