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

Sådan får du optegnelser fra sidste 24 timer i MySQL

Nogle gange skal du muligvis hente data fra de seneste 24 timer eller vælge poster for de sidste 24 timer til rapportering og analyse. Sådan får du optegnelser fra de sidste 24 timer i MySQL. Du kan bruge denne SQL-forespørgsel til at hente rækker for de sidste 24 timer i din database.

Sådan får du optegnelser fra sidste 24 timer i MySQL

Her er SQL-forespørgslen til at hente poster fra sidste 24 timer i MySQL.

Lad os sige, at du har følgende tabel salg(ordre_dato, beløb)

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 Læs:Sådan får du den første post i hver gruppe i MySQL

Få optegnelser fra sidste 24 timer i MySQL

Her er SQL-forespørgslen til at hente poster fra de sidste 24 timer i 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 |
+---------------------+--------+

I ovenstående SQL-forespørgsel bruger vi MySQL-systemfunktionen now() for at få aktuel datotid. Så bruger vi INTERVAL-sætning til at vælge de rækker, hvor ordre_date falder inden for de seneste 24 timer efter nuværende datotid.

Bonus Læs:Sådan får du sidste 15 dages poster i MySQL

I stedet for at angive interval i timer, kan du også nævne det i dag.

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 |
+---------------------+--------+

Begge ovenstående forespørgsler hjælper dig med at få optegnelser fra de sidste 24 timer.

Bonus Læs:Sådan får du sidste post i hver gruppe i MySQL

Men hvis du kun vil vælge rækker for i dag, kan du bruge følgende forespørgsel.

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 |
+---------------------+--------+

I ovenstående forespørgsel vil du kun få rækker til nuværende dato og ikke efter 24 timer. Vi bruger DATE-funktionen til kun at vælge de rækker, hvor datoværdien for ordre_dato er den samme som datoværdien for now()-funktionen, det vil sige nuværende dato.

Ubiq gør det nemt at visualisere data på få minutter og overvåge i dashboards i realtid. Prøv det i dag!

  1. MySQLDumper:Et PHP- og Perl-baseret MySQL-databasesikkerhedskopieringsværktøj

  2. Sådan beregnes månedlig vækst i PostgreSQL

  3. Sådan begrænser du rækker i et MySQL-resultatsæt

  4. Sådan opretter du pivottabel i MySQL