Czasami może być konieczne pobieranie danych godzinowych lub pobieranie rekordów dla każdej godziny w MySQL. W tym artykule przyjrzymy się, jak uzyskać dane dla każdej godziny w MySQL.
Jak uzyskać dane na każdą godzinę w MySQL
Oto kroki, aby uzyskać dane dla każdej godziny w MySQL. Załóżmy, że masz następującą tabelę sprzedaż(id, data_zamówienia, kwota)
mysql> create table sales(id int,
order_date datetime,
amount int);
mysql> insert into sales(id, order_date, amount)
values(1, '2021-02-02 08:15:00',250),
(2, '2021-02-02 08:30:00',200),
(3, '2021-02-02 08:55:00',150),
(4, '2021-02-02 09:15:00',125),
(5, '2021-02-02 09:30:00',250),
(6, '2021-02-02 09:45:00',200),
(7, '2021-02-02 10:15:00',180),
(8, '2021-02-02 10:30:00',125),
(9, '2021-02-02 10:45:00',200),
(10, '2021-02-02 11:15:00',250),
(11, '2021-02-02 11:30:00',150),
(12, '2021-02-02 11:45:00',200);
mysql> select * from sales;
+------+---------------------+--------+
| id | order_date | amount |
+------+---------------------+--------+
| 1 | 2021-02-02 08:15:00 | 250 |
| 2 | 2021-02-02 08:30:00 | 200 |
| 3 | 2021-02-02 08:55:00 | 150 |
| 4 | 2021-02-02 09:15:00 | 125 |
| 5 | 2021-02-02 09:30:00 | 250 |
| 6 | 2021-02-02 09:45:00 | 200 |
| 7 | 2021-02-02 10:15:00 | 180 |
| 8 | 2021-02-02 10:30:00 | 125 |
| 9 | 2021-02-02 10:45:00 | 200 |
| 10 | 2021-02-02 11:15:00 | 250 |
| 11 | 2021-02-02 11:30:00 | 150 |
| 12 | 2021-02-02 11:45:00 | 200 |
+------+---------------------+--------+
Jak uzyskać dane na każdą godzinę w MySQL
Oto zapytanie SQL, aby uzyskać dane dla każdej godziny w MySQL.
mysql> select hour(order_date),sum(amount)
from sales
group by hour(order_date);
+------------------+-------------+
| hour(order_date) | sum(amount) |
+------------------+-------------+
| 8 | 600 |
| 9 | 575 |
| 10 | 505 |
| 11 | 600 |
+------------------+-------------+ W powyższym zapytaniu po prostu grupujemy według data_zamówienia za pomocą funkcji HOUR i zagregowanej kwoty kolumna za pomocą funkcji SUMA.
Funkcja GODZINA pobiera numer godziny z podanej wartości daty/czasu/daty/godziny, która może być podana jako ciąg literału lub nazwa kolumny.
Jeśli chcesz wyświetlić wartości godzin za pomocą notacji AM/PM, takiej jak 8AM, 9AM itp., musisz użyć funkcji date_format, która pozwala na zmianę formatu danej wartości daty/czasu/daty, która może być podana jako literał ciągu lub nazwa kolumny.
mysql> select date_format(order_date,'%H %p') as hour,
sum(amount) as total_sales
from sales
group by date_format(order_date,'%H %p');
+-------+-------------+
| hour | total_sales |
+-------+-------------+
| 08 AM | 600 |
| 09 AM | 575 |
| 10 AM | 505 |
| 11 AM | 600 |
+-------+-------------+
Potrzebujesz narzędzia do raportowania dla MySQL? Ubiq ułatwia wizualizację danych w ciągu kilku minut i monitorowanie w pulpitach nawigacyjnych w czasie rzeczywistym. Wypróbuj już dziś!