Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como obter os últimos dados de 1 hora no MySQL


É útil obter os últimos registros de 1 hora ou recuperar as últimas linhas de 1 hora para relatórios e análises. Neste artigo, veremos como obter os dados da última hora no MySQL.



Como obter os dados da última hora no MySQL


É muito fácil selecionar os dados da última hora no MySQL usando a cláusula INTERVAL. Digamos que você tenha a seguinte tabela vendas(id, order_date, amount) .
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 |
 +------+---------------------+--------+

Aqui está o SQL para mostrar a última hora usando now() função.
mysql> select now();
 +---------------------+
 | now()               |
 +---------------------+
 | 2021-02-02 09:48:27 |
 +---------------------+

Aqui está o SQL para obter os dados da última hora no 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 |
 +------+---------------------+--------+

Na consulta acima, selecionamos apenas as linhas cuja order_date cai dentro do intervalo de 1 hora. Usamos a cláusula INTERVAL para subtrair facilmente o intervalo de 1 hora do tempo presente obtido usando now() função.



Como obter dados de horas atuais no MySQL


Às vezes você pode precisar obter registros da hora atual no MySQL. Aqui está a consulta SQL para recuperar os dados da hora atual.
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 |
 +------+---------------------+--------+

Na consulta SQL acima, selecionamos apenas os registros cujo order_date os valores DATE e HOUR da coluna são os mesmos da data e hora atual. Usamos as funções DATE e HOUR para obter valores de data e hora a partir de valores de data e hora.

Precisa de uma ferramenta de relatório para MySQL? A Ubiq facilita a visualização de dados em minutos e o monitoramento em painéis em tempo real. Experimente hoje!