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

MySQL:Rekordy wstawiane co godzinę, z ostatnich 24 godzin

Jeśli pogrupowałeś według HOUR(time) wtedy powinieneś użyć HOUR(time) w wybranych wyrażeniach, a nie time . Na przykład:

SELECT HOUR(time), COUNT(*)
FROM `records`
WHERE time > DATE_SUB(NOW(), INTERVAL 24 HOUR)
GROUP BY HOUR(time)
ORDER BY HOUR(time)

Alternatywnie możesz pogrupować według wyrażenia, które chcesz zwrócić:

SELECT COUNT(*), FLOOR( TIME_TO_SEC( TIMEDIFF( NOW(), time)) / 3600 )
FROM `records`
WHERE time > DATE_SUB(NOW(), INTERVAL 24 HOUR)
GROUP BY FLOOR( TIME_TO_SEC( TIMEDIFF( NOW(), time)) / 3600 )
ORDER BY FLOOR( TIME_TO_SEC( TIMEDIFF( NOW(), time)) / 3600 )

Jeśli się zastanawiasz, możesz bezpiecznie wywołać NOW() wiele razy w tym samym zapytaniu, tak jak to. Z podręcznika :




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL, wybierz rekordy na podstawie wartości w tablicy JSON

  2. Policz wiersze w MySQL wraz z rzeczywistą zawartością wiersza

  3. Zawijaj elementy tablicy w elementach div na podstawie tej samej wartości

  4. PHP MYSQL Wstaw dane w języku arabskim

  5. Zapobiegać wykorzystywaniu przycisków Wstecz? PHP