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!