sql >> Databáze >  >> RDS >> Mysql

Jak získat data pro každou hodinu v MySQL

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!

  1. Oracle - Klonovací tabulka - Struktura, datová omezení a vše

  2. 3 způsoby, jak najít řádky, které obsahují malá písmena v MySQL

  3. MariaDB JSON_LENGTH() Vysvětleno

  4. Funkce hodnocení v MySQL pomocí klauzule Order By