È utile per ottenere i record dell'ultima ora o recuperare le righe dell'ultima ora per il reporting e l'analisi. In questo articolo, vedremo come ottenere i dati dell'ultima ora in MySQL.
Come ottenere i dati dell'ultima ora in MySQL
È molto facile selezionare i dati dell'ultima ora in MySQL usando la clausola INTERVAL. 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',150),
(3, '2021-02-02 08:55:00',200),
(4, '2021-02-02 09:15:00',125),
(5, '2021-02-02 09:30:00',200),
(6, '2021-02-02 09:45:00',250);
mysql> select * from sales;
+------+---------------------+--------+
| id | order_date | amount |
+------+---------------------+--------+
| 1 | 2021-02-02 08:15:00 | 250 |
| 2 | 2021-02-02 08:30:00 | 150 |
| 3 | 2021-02-02 08:55:00 | 200 |
| 4 | 2021-02-02 09:15:00 | 125 |
| 5 | 2021-02-02 09:30:00 | 200 |
| 6 | 2021-02-02 09:45:00 | 250 |
+------+---------------------+--------+ Ecco l'SQL per mostrare l'ultima ora usando now() funzione.
mysql> select now(); +---------------------+ | now() | +---------------------+ | 2021-02-02 09:48:27 | +---------------------+
Ecco l'SQL per ottenere i dati dell'ultima ora in MySQL.
mysql> select *
from sales
where order_date > now() - interval 1 hour;
+------+---------------------+--------+
| id | order_date | amount |
+------+---------------------+--------+
| 3 | 2021-02-02 08:55:00 | 200 |
| 4 | 2021-02-02 09:15:00 | 125 |
| 5 | 2021-02-02 09:30:00 | 200 |
| 6 | 2021-02-02 09:45:00 | 250 |
+------+---------------------+--------+ Nella query precedente, selezioniamo solo quelle righe il cui data_ordine rientra nell'intervallo di 1 ora passata. Usiamo la clausola INTERVAL per sottrarre facilmente un intervallo di 1 ora dall'ora attuale ottenuta usando now() funzione.
Come ottenere i dati dell'ora corrente in MySQL
A volte potrebbe essere necessario ottenere i record dell'ora corrente in MySQL. Ecco la query SQL per recuperare i dati dell'ora corrente.
mysql> select * from sales
where date(order_date)=date(now())
and hour(order_date)=hour(now());
+------+---------------------+--------+
| id | order_date | amount |
+------+---------------------+--------+
| 4 | 2021-02-02 09:15:00 | 250 |
| 5 | 2021-02-02 09:30:00 | 250 |
| 6 | 2021-02-02 09:45:00 | 250 |
+------+---------------------+--------+ Nella query SQL precedente, selezioniamo solo i record il cui data_ordine i valori DATE e HOUR della colonna sono gli stessi di datetime attuale. Usiamo le funzioni DATA e ORA per ottenere i valori di data e ora dai valori di data e ora.
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!