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!