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!