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

Como obter registros das últimas 24 horas no MySQL


Às vezes, você pode precisar obter dados das últimas 24 horas ou selecionar registros das últimas 24 horas para relatórios e análises. Veja como obter registros das últimas 24 horas no MySQL. Você pode usar essa consulta SQL para obter linhas das últimas 24 horas em seu banco de dados.


Como obter registros das últimas 24 horas no MySQL


Aqui está a consulta SQL para obter registros das últimas 24 horas no MySQL.

Digamos que você tenha a seguinte tabela vendas(data_pedido, quantidade)
mysql> create table sales(order_date datetime, amount int);

mysql> insert into sales(order_date,amount) 
     values('2020-06-07 01:00:00',200),
     ('2020-06-07 02:30:00',350),
     ('2020-06-07 04:40:00',410),
     ('2020-06-07 12:10:00',600),
     ('2020-06-07 15:00:00',300),
     ('2020-06-07 18:55:00',450),
     ('2020-06-07 21:00:00',1200),
     ('2020-06-08 03:00:00',800),
     ('2020-06-08 05:30:00',900),
     ('2020-06-08 07:20:00',100),
     ('2020-06-08 10:10:00',250),
     ('2020-06-08 12:05:00',300),
     ('2020-06-08 13:30:00',200);

mysql> select * from sales;
+---------------------+--------+
| order_date          | amount |
+---------------------+--------+
| 2020-06-07 01:00:00 |    200 |
| 2020-06-07 02:30:00 |    350 |
| 2020-06-07 04:40:00 |    410 |
| 2020-06-07 12:10:00 |    600 |
| 2020-06-07 15:00:00 |    300 |
| 2020-06-07 18:55:00 |    450 |
| 2020-06-07 21:00:00 |   1200 |
| 2020-06-08 03:00:00 |    800 |
| 2020-06-08 05:30:00 |    900 |
| 2020-06-08 07:20:00 |    100 |
| 2020-06-08 10:10:00 |    250 |
| 2020-06-08 12:05:00 |    300 |
| 2020-06-08 13:30:00 |    200 |
+---------------------+--------+

Bônus de leitura:Como obter o primeiro registro em cada grupo no MySQL


Obter registros das últimas 24 horas no MySQL


Aqui está a consulta SQL para obter registros das últimas 24 horas no MySQL
mysql> select * from sales
       where order_date > now() - interval 24 hour;
+---------------------+--------+
| order_date          | amount |
+---------------------+--------+
| 2020-06-07 15:00:00 |    300 |
| 2020-06-07 18:55:00 |    450 |
| 2020-06-07 21:00:00 |   1200 |
| 2020-06-08 03:00:00 |    800 |
| 2020-06-08 05:30:00 |    900 |
| 2020-06-08 07:20:00 |    100 |
| 2020-06-08 10:10:00 |    250 |
| 2020-06-08 12:05:00 |    300 |
| 2020-06-08 13:30:00 |    200 |
+---------------------+--------+

Na consulta SQL acima, usamos a função do sistema MySQL now() para obter a data e hora atual. Em seguida, usamos a cláusula INTERVAL para selecionar as linhas em que order_date cai dentro das últimas 24 horas da data e hora atual.

Bônus de leitura:Como obter os últimos 15 dias de registros no MySQL



Em vez de especificar o intervalo em horas, você também pode mencioná-lo em dia.
mysql> select * from sales
     where order_date > now() - interval 1 day;
+---------------------+--------+
| order_date          | amount |
+---------------------+--------+
| 2020-06-07 15:00:00 |    300 |
| 2020-06-07 18:55:00 |    450 |
| 2020-06-07 21:00:00 |   1200 |
| 2020-06-08 03:00:00 |    800 |
| 2020-06-08 05:30:00 |    900 |
| 2020-06-08 07:20:00 |    100 |
| 2020-06-08 10:10:00 |    250 |
| 2020-06-08 12:05:00 |    300 |
| 2020-06-08 13:30:00 |    200 |
+---------------------+--------+

Ambas as consultas acima ajudarão você a obter registros das últimas 24 horas.

Bônus de leitura:Como obter o último registro em cada grupo no MySQL



No entanto, se você quiser selecionar linhas apenas para o dia atual, poderá usar a consulta a seguir.
mysql> select * from sales
      where date(order_date) = date(now());
+---------------------+--------+
| order_date          | amount |
+---------------------+--------+
| 2020-06-08 03:00:00 |    800 |
| 2020-06-08 05:30:00 |    900 |
| 2020-06-08 07:20:00 |    100 |
| 2020-06-08 10:10:00 |    250 |
| 2020-06-08 12:05:00 |    300 |
| 2020-06-08 13:30:00 |    200 |
+---------------------+--------+

Na consulta acima, você obterá apenas a data atual das linhas e não as últimas 24 horas. Usamos a função DATE para selecionar apenas as linhas em que o valor de data de order_date é igual ao valor de data da função now(), ou seja, data atual.

A Ubiq facilita a visualização de dados em minutos e o monitoramento em painéis em tempo real. Experimente hoje!