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