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!