Je užitečné získat záznamy za poslední 1 hodinu nebo načíst řádky za poslední 1 hodinu pro hlášení a analýzu. V tomto článku se podíváme na to, jak získat data za poslední 1 hodinu v MySQL.
Jak získat data za poslední 1 hodinu v MySQL
Je velmi snadné vybrat data za poslední 1 hodinu v MySQL pomocí klauzule INTERVAL. Řekněme, že máte následující tabulku prodej(id, datum_objednávky, částka) .
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 |
+------+---------------------+--------+ Zde je SQL pro zobrazení nejnovějšího času pomocí now() funkce.
mysql> select now(); +---------------------+ | now() | +---------------------+ | 2021-02-02 09:48:27 | +---------------------+
Zde je SQL pro získání dat za poslední 1 hodinu v 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 |
+------+---------------------+--------+ Ve výše uvedeném dotazu vybíráme pouze ty řádky, jejichž datum_objednávky spadá do intervalu poslední 1 hodiny. Klauzuli INTERVAL používáme ke snadnému odečtení 1hodinového intervalu od aktuálního času získaného pomocí now() funkce.
Jak získat údaje o aktuálních hodinách v MySQL
Někdy možná budete potřebovat získat záznamy o aktuální hodině v MySQL. Zde je dotaz SQL pro načtení údajů o aktuální hodině.
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 |
+------+---------------------+--------+ Ve výše uvedeném SQL dotazu vybíráme pouze ty záznamy, jejichž datum_objednávky hodnoty DATE a HOUR ve sloupci jsou stejné jako hodnoty aktuálního data a času. K získání hodnot data a hodiny z hodnot datetime používáme funkce DATE a HOUR.
Potřebujete nástroj pro vytváření sestav pro MySQL? Ubiq usnadňuje vizualizaci dat během několika minut a sledování na řídicích panelech v reálném čase. Zkuste to ještě dnes!