MySql pobieranie danych pogrupowanych według godziny


Znacznik czasu często stosujemy w bazach danych aby zaznaczyć datę i godzinę utworzenia wpisu jednak często do statystyk potrzebujemy danych z określonych przedziałów czasowych jak na przykład liczbę wyników pogrupowanych według godziny.


Skorzystamy z przykładowej tabeli o nazwie "orders" do której dodajemy kolejno wiersze zapisując dokładną datę w kolumnie "time":

idvaluetime
11243120.892020-05-14 22:12:49
11263210.682020-05-14 22:18:32
1124360.782020-05-14 22:45:12
11250132.102020-05-14 23:10:36

Więc teraz chcemy pobrać ilość zamówień dodanych w określonej godzinie w tym celu skorzystamy z funkcji DATE_FORMAT() podając jako argument %H co oznacza godzinę z zakresu 00-23

Całe zapytanie wygląda następująco:

SELECT COUNT(id) AS orders, DATE_FORMAT(time,\'%H\') AS hour FROM orders WHERE time= 2020-05-14 GROUP BY hour

Wykonując to zapytanie na fragmencie powyższej tabeli otrzymamy następujący wynik

ordershour
223
231

Jak widać tak prostym zapytaniem można otrzymać całkiem ciekawe przedstawienie danych bardzo przydatne w różnego rodzaju statystykach.

nazwa.pl