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

Come ottenere i record delle ultime 24 ore in MySQL

A volte potrebbe essere necessario ottenere i dati delle ultime 24 ore o selezionare i record delle ultime 24 ore, per il reporting e l'analisi. Ecco come ottenere i record delle ultime 24 ore in MySQL. Puoi utilizzare questa query SQL per ottenere le righe delle ultime 24 ore nel database.

Come ottenere i record delle ultime 24 ore in MySQL

Ecco la query SQL per ottenere i record delle ultime 24 ore in MySQL.

Supponiamo che tu abbia la seguente tabella vendite(data_ordine, importo)

mysql> create table sales(order_date datetime, amount int);

mysql> insert into sales(order_date,amount) 
     values('2020-06-07 01:00:00',200),
     ('2020-06-07 02:30:00',350),
     ('2020-06-07 04:40:00',410),
     ('2020-06-07 12:10:00',600),
     ('2020-06-07 15:00:00',300),
     ('2020-06-07 18:55:00',450),
     ('2020-06-07 21:00:00',1200),
     ('2020-06-08 03:00:00',800),
     ('2020-06-08 05:30:00',900),
     ('2020-06-08 07:20:00',100),
     ('2020-06-08 10:10:00',250),
     ('2020-06-08 12:05:00',300),
     ('2020-06-08 13:30:00',200);

mysql> select * from sales;
+---------------------+--------+
| order_date          | amount |
+---------------------+--------+
| 2020-06-07 01:00:00 |    200 |
| 2020-06-07 02:30:00 |    350 |
| 2020-06-07 04:40:00 |    410 |
| 2020-06-07 12:10:00 |    600 |
| 2020-06-07 15:00:00 |    300 |
| 2020-06-07 18:55:00 |    450 |
| 2020-06-07 21:00:00 |   1200 |
| 2020-06-08 03:00:00 |    800 |
| 2020-06-08 05:30:00 |    900 |
| 2020-06-08 07:20:00 |    100 |
| 2020-06-08 10:10:00 |    250 |
| 2020-06-08 12:05:00 |    300 |
| 2020-06-08 13:30:00 |    200 |
+---------------------+--------+

Bonus Leggi:Come ottenere il primo record in ogni gruppo in MySQL

Ottieni i record delle ultime 24 ore in MySQL

Ecco la query SQL per ottenere i record delle ultime 24 ore in MySQL

mysql> select * from sales
       where order_date > now() - interval 24 hour;
+---------------------+--------+
| order_date          | amount |
+---------------------+--------+
| 2020-06-07 15:00:00 |    300 |
| 2020-06-07 18:55:00 |    450 |
| 2020-06-07 21:00:00 |   1200 |
| 2020-06-08 03:00:00 |    800 |
| 2020-06-08 05:30:00 |    900 |
| 2020-06-08 07:20:00 |    100 |
| 2020-06-08 10:10:00 |    250 |
| 2020-06-08 12:05:00 |    300 |
| 2020-06-08 13:30:00 |    200 |
+---------------------+--------+

Nella query SQL sopra, utilizziamo la funzione di sistema MySQL now() per ottenere la data e l'ora corrente. Quindi utilizziamo la clausola INTERVAL per selezionare quelle righe in cui data_ordine rientra nelle ultime 24 ore dalla data e ora attuale.

Bonus Leggi:Come ottenere i record degli ultimi 15 giorni in MySQL

Invece di specificare l'intervallo in ore, puoi anche citarlo in giorno.

mysql> select * from sales
     where order_date > now() - interval 1 day;
+---------------------+--------+
| order_date          | amount |
+---------------------+--------+
| 2020-06-07 15:00:00 |    300 |
| 2020-06-07 18:55:00 |    450 |
| 2020-06-07 21:00:00 |   1200 |
| 2020-06-08 03:00:00 |    800 |
| 2020-06-08 05:30:00 |    900 |
| 2020-06-08 07:20:00 |    100 |
| 2020-06-08 10:10:00 |    250 |
| 2020-06-08 12:05:00 |    300 |
| 2020-06-08 13:30:00 |    200 |
+---------------------+--------+

Entrambe le query precedenti ti aiuteranno a ottenere i record delle ultime 24 ore.

Bonus Lettura:come ottenere l'ultimo record in ogni gruppo in MySQL

Tuttavia, se desideri selezionare le righe solo per il giorno attuale, puoi utilizzare la query seguente.

mysql> select * from sales
      where date(order_date) = date(now());
+---------------------+--------+
| order_date          | amount |
+---------------------+--------+
| 2020-06-08 03:00:00 |    800 |
| 2020-06-08 05:30:00 |    900 |
| 2020-06-08 07:20:00 |    100 |
| 2020-06-08 10:10:00 |    250 |
| 2020-06-08 12:05:00 |    300 |
| 2020-06-08 13:30:00 |    200 |
+---------------------+--------+

Nella query precedente, otterrai righe solo con la data presente e non trascorse 24 ore. Utilizziamo la funzione DATA per selezionare solo quelle righe in cui il valore della data di order_date è uguale al valore della data della funzione now(), ovvero la data attuale.

Ubiq semplifica la visualizzazione dei dati in pochi minuti e il monitoraggio in dashboard in tempo reale. Provalo oggi!