Przydatne jest uzyskanie rekordów z ostatniej godziny lub wierszy z ostatniej godziny w celu raportowania i analizy. W tym artykule przyjrzymy się, jak uzyskać dane z ostatniej godziny w MySQL.
Jak uzyskać dane z ostatniej godziny w MySQL
Bardzo łatwo jest wybrać dane z ostatniej godziny w MySQL za pomocą klauzuli INTERVAL. Załóżmy, że masz następującą tabelę sprzedaż(id, data_zamówienia, kwota) .
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 | +------+---------------------+--------+
Oto kod SQL pokazujący ostatni czas przy użyciu now() funkcja.
mysql> select now(); +---------------------+ | now() | +---------------------+ | 2021-02-02 09:48:27 | +---------------------+
Oto kod SQL do pobrania danych z ostatniej godziny w 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 | +------+---------------------+--------+
W powyższym zapytaniu wybieramy tylko te wiersze, których data_zamówienia przypada w ciągu ostatnich 1 godzin. Używamy klauzuli INTERVAL, aby łatwo odjąć 1-godzinny interwał od czasu teraźniejszego uzyskanego za pomocą now() funkcja.
Jak uzyskać aktualne dane godzinowe w MySQL
Czasami może być konieczne uzyskanie rekordów bieżącej godziny w MySQL. Oto zapytanie SQL do pobrania danych o bieżącej godzinie.
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 | +------+---------------------+--------+
W powyższym zapytaniu SQL wybieramy tylko te rekordy, których data_zamówienia wartości DATE i HOUR w kolumnie są takie same, jak dla bieżącej daty i godziny. Używamy funkcji DATA i GODZINA, aby uzyskać wartości daty i godziny z wartości daty i godziny.
Potrzebujesz narzędzia do raportowania dla MySQL? Ubiq ułatwia wizualizację danych w ciągu kilku minut i monitorowanie w pulpitach nawigacyjnych w czasie rzeczywistym. Wypróbuj już dziś!