Někdy můžete potřebovat získat hodinová data nebo načíst záznamy pro každou hodinu v MySQL. V tomto článku se podíváme na to, jak získat data pro každou hodinu v MySQL.
Jak získat data pro každou hodinu v MySQL
Zde jsou kroky k získání dat pro každou hodinu v MySQL. Řekněme, že máte následující tabulku prodej(id, datum_objednávky, částka)
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 získat data pro každou hodinu v MySQL
Zde je SQL dotaz pro získání dat pro každou hodinu v 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 |
+------------------+-------------+ Ve výše uvedeném dotazu jednoduše seskupíme podle datum_objednávky pomocí funkce HOUR a agregované částky pomocí funkce SUM.
Funkce HOUR načte číslo hodiny z dané hodnoty data/času/date a času, které lze zadat jako doslovný řetězec nebo název sloupce.
Pokud chcete zobrazit hodnoty hodin pomocí zápisu AM/PM, jako je 8AM, 9AM atd., musíte použít funkci date_format, která vám umožní změnit formát dané hodnoty data/času/date a času, kterou lze poskytnout jako doslovný název řetězce nebo sloupce.
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 |
+-------+-------------+
Potřebujete nástroj pro vytváření sestav pro MySQL? Ubiq usnadňuje vizualizaci dat během několika minut a sledování na řídicích panelech v reálném čase. Vyzkoušejte to ještě dnes!