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

Jak uzyskać dane na każdą godzinę w MySQL?

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ś!

  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 zapobiec duplikowaniu nazw użytkowników, gdy ludzie się rejestrują?

  2. Napraw Odmowa dostępu dla użytkownika 'root'@'localhost' dla phpMyAdmin

  3. PHP/MySQL wstaw wiersz, a następnie pobierz „id”

  4. Jak mogę rozwiązać niezgodne z sql_mode=only_full_group_by w laravel eloquent?

  5. 10 pytań do rozmowy kwalifikacyjnej na temat bazy danych MySQL dla początkujących i średniozaawansowanych