A volte potrebbe essere necessario ottenere dati orari o recuperare record per ogni ora in MySQL. In questo articolo, vedremo come ottenere i dati per ogni ora in MySQL.
Come ottenere dati ogni ora in MySQL
Ecco i passaggi per ottenere i dati per ogni ora in MySQL. Supponiamo che tu abbia la seguente tabella vendite(id, data_ordine, importo)
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 | +------+---------------------+--------+
Come ottenere i dati per ogni ora in MySQL
Ecco la query SQL per ottenere i dati per ogni ora in 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 | +------------------+-------------+
Nella query precedente, raggruppiamo semplicemente per data_ordine utilizzando la funzione ORA e aggrega importo colonna utilizzando la funzione SOMMA.
La funzione ORA recupera il numero dell'ora da un determinato valore di data/ora/data/ora, che può essere fornito come stringa letterale o nome di colonna.
Se si desidera visualizzare i valori dell'ora utilizzando la notazione AM/PM come 8AM, 9AM , ecc., è necessario utilizzare la funzione date_format che consente di modificare il formato di un determinato valore di data/ora/dataora, che può essere fornito come stringa letterale o nome della colonna.
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 | +-------+-------------+
Hai bisogno di uno strumento di reporting per MySQL? Ubiq semplifica la visualizzazione dei dati in pochi minuti e il monitoraggio in dashboard in tempo reale. Provalo oggi!