sql >> Database >  >> RDS >> Mysql

Records van de afgelopen 24 uur ophalen in MySQL

Soms moet u gegevens van de afgelopen 24 uur ophalen of records van de afgelopen 24 uur selecteren voor rapportage en analyse. Hier leest u hoe u records van de afgelopen 24 uur in MySQL kunt ophalen. U kunt deze SQL-query gebruiken om rijen van de afgelopen 24 uur in uw database te krijgen.

Hoe u records van de afgelopen 24 uur kunt ophalen in MySQL

Hier is de SQL-query om records van de afgelopen 24 uur in MySQL te krijgen.

Stel dat u de volgende tabel verkoop(order_date, hoeveelheid) . heeft

mysql> create table sales(order_date datetime, amount int);

mysql> insert into sales(order_date,amount) 
     values('2020-06-07 01:00:00',200),
     ('2020-06-07 02:30:00',350),
     ('2020-06-07 04:40:00',410),
     ('2020-06-07 12:10:00',600),
     ('2020-06-07 15:00:00',300),
     ('2020-06-07 18:55:00',450),
     ('2020-06-07 21:00:00',1200),
     ('2020-06-08 03:00:00',800),
     ('2020-06-08 05:30:00',900),
     ('2020-06-08 07:20:00',100),
     ('2020-06-08 10:10:00',250),
     ('2020-06-08 12:05:00',300),
     ('2020-06-08 13:30:00',200);

mysql> select * from sales;
+---------------------+--------+
| order_date          | amount |
+---------------------+--------+
| 2020-06-07 01:00:00 |    200 |
| 2020-06-07 02:30:00 |    350 |
| 2020-06-07 04:40:00 |    410 |
| 2020-06-07 12:10:00 |    600 |
| 2020-06-07 15:00:00 |    300 |
| 2020-06-07 18:55:00 |    450 |
| 2020-06-07 21:00:00 |   1200 |
| 2020-06-08 03:00:00 |    800 |
| 2020-06-08 05:30:00 |    900 |
| 2020-06-08 07:20:00 |    100 |
| 2020-06-08 10:10:00 |    250 |
| 2020-06-08 12:05:00 |    300 |
| 2020-06-08 13:30:00 |    200 |
+---------------------+--------+

Bonus lezen:hoe u het eerste record in elke groep in MySQL kunt krijgen

Verkrijg records van de afgelopen 24 uur in MySQL

Hier is de SQL-query om records van de afgelopen 24 uur op te halen in MySQL

mysql> select * from sales
       where order_date > now() - interval 24 hour;
+---------------------+--------+
| order_date          | amount |
+---------------------+--------+
| 2020-06-07 15:00:00 |    300 |
| 2020-06-07 18:55:00 |    450 |
| 2020-06-07 21:00:00 |   1200 |
| 2020-06-08 03:00:00 |    800 |
| 2020-06-08 05:30:00 |    900 |
| 2020-06-08 07:20:00 |    100 |
| 2020-06-08 10:10:00 |    250 |
| 2020-06-08 12:05:00 |    300 |
| 2020-06-08 13:30:00 |    200 |
+---------------------+--------+

In de bovenstaande SQL-query gebruiken we de MySQL-systeemfunctie now() om de huidige datetime te krijgen. Vervolgens gebruiken we de INTERVAL-clausule om die rijen te selecteren waar order_date valt binnen de afgelopen 24 uur na de huidige datetime.

Bonus lezen:hoe u records van de laatste 15 dagen in MySQL kunt krijgen

In plaats van het interval in uren op te geven, kunt u het ook in dag vermelden.

mysql> select * from sales
     where order_date > now() - interval 1 day;
+---------------------+--------+
| order_date          | amount |
+---------------------+--------+
| 2020-06-07 15:00:00 |    300 |
| 2020-06-07 18:55:00 |    450 |
| 2020-06-07 21:00:00 |   1200 |
| 2020-06-08 03:00:00 |    800 |
| 2020-06-08 05:30:00 |    900 |
| 2020-06-08 07:20:00 |    100 |
| 2020-06-08 10:10:00 |    250 |
| 2020-06-08 12:05:00 |    300 |
| 2020-06-08 13:30:00 |    200 |
+---------------------+--------+

Met beide bovenstaande vragen kunt u records van de afgelopen 24 uur ophalen.

Bonus lezen:hoe u het laatste record in elke groep in MySQL kunt krijgen

Als u echter alleen rijen voor vandaag wilt selecteren, kunt u de volgende zoekopdracht gebruiken.

mysql> select * from sales
      where date(order_date) = date(now());
+---------------------+--------+
| order_date          | amount |
+---------------------+--------+
| 2020-06-08 03:00:00 |    800 |
| 2020-06-08 05:30:00 |    900 |
| 2020-06-08 07:20:00 |    100 |
| 2020-06-08 10:10:00 |    250 |
| 2020-06-08 12:05:00 |    300 |
| 2020-06-08 13:30:00 |    200 |
+---------------------+--------+

In de bovenstaande zoekopdracht krijgt u alleen rijen met de huidige datum en niet na 24 uur. We gebruiken de DATE-functie om alleen die rijen te selecteren waar de datumwaarde van order_date hetzelfde is als de datumwaarde van de now()-functie, dat wil zeggen de huidige datum.

Ubiq maakt het gemakkelijk om gegevens binnen enkele minuten te visualiseren en in realtime dashboards te controleren. Probeer het vandaag nog!

  1. Hoe gegevens genereren in MySQL?

  2. Effectieve monitoring van MySQL met SCUMM-dashboards:deel één

  3. Hoe de meest recente versie van Sqlite aar te installeren bij gebruik van Room On Android

  4. Galera Cluster Cloud-aanbiedingen vergelijken:deel twee Google Cloud Platform (GCP)