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ś!