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