Mysql
 sql >> Database >  >> RDS >> Mysql

Come ottenere i dati dell'ultima ora in MySQL

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