Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So erhalten Sie Daten für jede Stunde in MySQL

Manchmal müssen Sie möglicherweise stündliche Daten abrufen oder Datensätze für jede Stunde in MySQL abrufen. In diesem Artikel sehen wir uns an, wie man Daten für jede Stunde in MySQL erhält.


Wie man Daten für jede Stunde in MySQL erhält

Hier sind die Schritte zum Abrufen von Daten für jede Stunde in MySQL. Nehmen wir an, Sie haben die folgende Tabelle sales(id, order_date, amount)

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 |
 +------+---------------------+--------+


So erhalten Sie Daten für jede Stunde in MySQL

Hier ist die SQL-Abfrage, um Daten für jede Stunde in MySQL zu erhalten.

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 |
 +------------------+-------------+

In der obigen Abfrage gruppieren wir einfach nach order_date mit HOUR-Funktion und aggregiertem Betrag Spalte mit SUM-Funktion.

Die HOUR-Funktion ruft die Stundenzahl aus einem bestimmten Datum/Zeit/Datum/Uhrzeit-Wert ab, der als Literalzeichenfolge oder Spaltenname bereitgestellt werden kann.

Wenn Sie Stundenwerte in AM/PM-Notation wie 8AM, 9AM usw. anzeigen möchten, müssen Sie die Funktion date_format verwenden, mit der Sie das Format eines bestimmten Datums-/Zeit-/datetime-Werts ändern können, der als bereitgestellt werden kann Literale Zeichenfolge oder Spaltenname.

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 |
 +-------+-------------+

Benötigen Sie ein Reporting-Tool für MySQL? Ubiq macht es einfach, Daten innerhalb von Minuten zu visualisieren und in Echtzeit-Dashboards zu überwachen. Probieren Sie es noch heute aus!