sql >> Database >  >> RDS >> Mysql

Hoe u de laatste 1 uur gegevens in MySQL kunt krijgen

Het is handig om records van de laatste 1 uur op te halen of rijen van de laatste 1 uur op te halen voor rapportage en analyse. In dit artikel zullen we bekijken hoe u gegevens van de laatste 1 uur in MySQL kunt krijgen.


Hoe gegevens van het laatste uur in MySQL te krijgen

Het is heel eenvoudig om gegevens van de laatste 1 uur in MySQL te selecteren met behulp van de INTERVAL-clausule. Stel dat u de volgende tabel verkoop(id, order_date, bedrag) . heeft .

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

Hier is de SQL om de laatste tijd te tonen met behulp van now() functie.

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

Hier is de SQL om de laatste 1 uur gegevens in MySQL te krijgen.

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

In de bovenstaande zoekopdracht selecteren we alleen die rijen waarvan order_date valt binnen een interval van meer dan 1 uur. We gebruiken de INTERVAL-clausule om gemakkelijk een interval van 1 uur af te trekken van de huidige tijd verkregen met now() functie.


Huidige uurgegevens ophalen in MySQL

Soms moet u mogelijk records van het huidige uur in MySQL krijgen. Hier is de SQL-query om de huidige uurgegevens op te halen.

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

In de bovenstaande SQL-query selecteren we alleen die records waarvan order_date de DATE- en HOUR-waarden van de kolom zijn dezelfde als die van de huidige datetime. We gebruiken DATE- en HOUR-functies om datum- en uurwaarden uit datetime-waarden te halen.

Een rapportagetool voor MySQL nodig? Ubiq maakt het gemakkelijk om gegevens binnen enkele minuten te visualiseren en in realtime dashboards te monitoren. Probeer het vandaag nog!

  1. Top Facebook-groepen voor Analytics, Big Data, Data Mining, Hadoop, NoSQL, Data Science

  2. Oracle ORA-00979 - geen GROUP BY-expressie

  3. ik heb een Android-app die gegevens van sqlite ophaalt en de gegevens in BaseAdapter weergeeft .. wat is de beste manier ??

  4. Breid EM Grid Control uit naar nieuwe nodes