sql >> Database teknologi >  >> RDS >> Mysql

Sådan får du sidste 1 times data i MySQL

Det er nyttigt at hente sidste 1 times optegnelser eller hente de sidste 1 times rækker til rapportering og analyse. I denne artikel vil vi se på, hvordan du får sidste 1 times data i MySQL.


Sådan får du sidste 1 times data i MySQL

Det er meget nemt at vælge sidste 1 times data i MySQL ved hjælp af INTERVAL-klausulen. Lad os sige, at du har følgende tabel salg(id, ordre_dato, beløb) .

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 |
 +------+---------------------+--------+

Her er SQL'en til at vise seneste tid ved at bruge now() funktion.

mysql> select now();
 +---------------------+
 | now()               |
 +---------------------+
 | 2021-02-02 09:48:27 |
 +---------------------+

Her er SQL'en for at få sidste 1 times 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 ovenstående forespørgsel vælger vi kun de rækker, hvis ordre_date falder inden for sidste 1 times interval. Vi bruger INTERVAL-sætning til nemt at trække 1 times interval fra det nuværende tidspunkt opnået ved hjælp af now() funktion.


Sådan får du aktuelle timedata i MySQL

Nogle gange skal du muligvis få optegnelser over aktuelle timer i MySQL. Her er SQL-forespørgslen til at hente aktuelle timedata.

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 ovenstående SQL-forespørgsel vælger vi kun de poster, hvis ordre_date kolonnens DATO- og HOUR-værdier er de samme som for nuværende dato og klokkeslæt. Vi bruger DATE- og HOUR-funktionerne til at hente dato- og timeværdier fra datetime-værdier.

Har du brug for et rapporteringsværktøj til MySQL? Ubiq gør det nemt at visualisere data på få minutter og overvåge i dashboards i realtid. Prøv det i dag!

  1. MySQL JOIN ON vs BRUG?

  2. Oracle Pro*C/OCI-installationshandlere til SIGSEGV/SIGABRT og venner - hvorfor og hvordan deaktiveres?

  3. Adgang 2016 For Dummies Cheat Sheet

  4. Sådan installeres Nextcloud 15 på Ubuntu 18.04