sql >> Databasteknik >  >> RDS >> Mysql

Hur man hämtar poster från de senaste 24 timmarna i MySQL

Ibland kan du behöva hämta data från de senaste 24 timmarna eller välja poster för de senaste 24 timmarna för rapportering och analys. Så här får du poster från de senaste 24 timmarna i MySQL. Du kan använda den här SQL-frågan för att hämta rader för de senaste 24 timmarna i din databas.

Hur man får poster från de senaste 24 timmarna i MySQL

Här är SQL-frågan för att hämta poster från de senaste 24 timmarna i MySQL.

Låt oss säga att du har följande tabell försäljning(orderdatum, belopp)

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:Hur man får första posten i varje grupp i MySQL

Få poster från de senaste 24 timmarna i MySQL

Här är SQL-frågan för att hämta poster från de senaste 24 timmarna 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 ovanstående SQL-fråga använder vi MySQL-systemfunktionen now() för att få aktuell datumtid. Sedan använder vi INTERVAL-satsen för att välja de rader där order_date faller inom de senaste 24 timmarna från nuvarande datum och tid.

Bonusläs:Hur man får senaste 15 dagars poster i MySQL

Istället för att ange intervall i timmar kan du också nämna 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 |
+---------------------+--------+

Båda ovanstående frågor hjälper dig att få uppgifter från de senaste 24 timmarna.

Bonus Läs:Hur man får sista posten i varje grupp i MySQL

Men om du vill välja rader endast för dagens datum kan du använda följande fråga.

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 ovanstående fråga får du rader endast aktuellt datum och inte efter 24 timmar. Vi använder DATE-funktionen för att bara välja de rader där datumvärdet för order_date är samma som datumvärdet för now()-funktionen, det vill säga nuvarande datum.

Ubiq gör det enkelt att visualisera data på några minuter och övervaka i realtidsinstrumentpaneler. Prova det idag!

  1. Hur LEFT()-funktionen fungerar i SQL Server (T-SQL)

  2. 3 sätt att få de sorteringar som är tillgängliga i MariaDB

  3. Guide till designdatabas för restaurangordersystem i MySQL

  4. Benchmarking Postgres-XL