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

Grupowanie znaczników czasu w MySQL z PHP

Piotr

SELECT COUNT(*), HOUR(timecode)
FROM timecodeTable
GROUP BY HOUR(timecode);

Twój zestaw wyników, biorąc pod uwagę powyższe dane, będzie wyglądał tak:

+----------+----------------+
| COUNT(*) | HOUR(timecode) |
+----------+----------------+
|       10 |             18 | 
+----------+----------------+

Wiele innych powiązanych funkcji można znaleźć tutaj .

Edytuj

Po wykonaniu kilku własnych testów na podstawie wyników twojego komentarza ustaliłem, że twoja baza danych jest w stanie epickiej porażki . :) Używasz INT jako ZNACZNIKÓW CZASU. To nigdy nie jest dobry pomysł. Nie ma uzasadnionego powodu, aby używać INT zamiast TIMESTAMP/DATETIME.

To powiedziawszy, musisz zmodyfikować mój powyższy przykład w następujący sposób:

SELECT COUNT(*), HOUR(FROM_UNIXTIME(timecode))
FROM timecodeTable
GROUP BY HOUR(FROM_UNIXTIME(timecode));

Edytuj 2

Aby to osiągnąć, możesz użyć dodatkowych klauzul GROUP BY:

SELECT 
  COUNT(*),
  YEAR(timecode),
  DAYOFYEAR(timecode),
  HOUR(timecode)
FROM timecodeTable
GROUP BY YEAR(timecode), DAYOFYEAR(timecode), HOUR(timecode);

Uwaga, pominąłem FROM_UNIXTIME() dla zwięzłości.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak przesyłać dane do bazy danych za pomocą Fetch API w React.js

  2. Dodanie wartości 2 pól tekstowych, aby wyświetlić wynik w jednym z nich

  3. Jak ustawić format autoinkrementacji na 0001 w MySQL?

  4. Jak uzyskać znaczące komunikaty o błędach z MySQL za pomocą przygotowanych instrukcji PDO?

  5. MySQL konwertuje YEARWEEK na datę