sql >> Databáze >  >> RDS >> Mysql

Jak získat data za poslední 1 hodinu v MySQL

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!

  1. Chyba serveru SQL 111:„…musí být prvním příkazem v dávce dotazu“

  2. Jak funguje include() v PL-SQL?

  3. Jak aktualizovat sloupec na základě filtru jiného sloupce

  4. Jak vytvořit uložené procedury PL/SQL bez parametrů v databázi Oracle