sql >> Databasteknik >  >> RDS >> Mysql

Hur man får senaste 1 timmes data i MySQL

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!

  1. Ändra och återställ MySQL root-lösenord

  2. Hur skapar man en säkerhetskopia av en enda tabell i en postgres-databas?

  3. Slutför SQL. Berättelser om framgång och misslyckande

  4. Returnera rader som innehåller icke-alfanumeriska tecken i SQL Server