Det är användbart att få senaste 1 timmes poster, eller hämta senaste 1 timmes rader för rapportering och analys. I den här artikeln kommer vi att titta på hur man får senaste 1 timmes data i MySQL.
Hur får du senaste 1 timmes data i MySQL
Det är mycket enkelt att välja senaste 1 timmes data i MySQL med hjälp av INTERVAL-satsen. Låt oss säga att du har följande tabell försäljning(id, order_date, summa) .
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 | +------+---------------------+--------+
Här är SQL för att visa senaste tiden med now() funktion.
mysql> select now(); +---------------------+ | now() | +---------------------+ | 2021-02-02 09:48:27 | +---------------------+
Här är SQL för att få senaste 1 timmes data i 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 | +------+---------------------+--------+
I ovanstående fråga väljer vi bara de rader vars orderdatum faller inom det senaste intervallet på 1 timme. Vi använder INTERVAL-satsen för att enkelt subtrahera 1 timmes intervall från nuvarande tid som erhålls med now() funktion.
Hur får du aktuell timdata i MySQL
Ibland kan du behöva få register över aktuella timmar i MySQL. Här är SQL-frågan för att hämta aktuell timdata.
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 | +------+---------------------+--------+
I ovanstående SQL-fråga väljer vi endast de poster vars orderdatum Kolumnens DATUM- och TIM-värden är samma som för nuvarande datum och tid. Vi använder funktionerna DATE och HOUR för att hämta datum- och timvärden från datetime-värden.
Behöver du ett rapporteringsverktyg för MySQL? Ubiq gör det enkelt att visualisera data på några minuter och övervaka i realtidsinstrumentpaneler. Prova det idag!