sql >> Base de Datos >  >> RDS >> Mysql

Cómo obtener registros de las últimas 24 horas en MySQL

A veces, es posible que necesite obtener datos de las últimas 24 horas o seleccionar registros de las últimas 24 horas, para informes y análisis. Aquí se explica cómo obtener registros de las últimas 24 horas en MySQL. Puede usar esta consulta SQL para obtener filas de las últimas 24 horas en su base de datos.

Cómo obtener registros de las últimas 24 horas en MySQL

Aquí está la consulta SQL para obtener registros de las últimas 24 horas en MySQL.

Supongamos que tiene la siguiente tabla ventas (fecha_pedido, cantidad)

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 |
+---------------------+--------+

Lectura adicional:cómo obtener el primer registro en cada grupo en MySQL

Obtener registros de las últimas 24 horas en MySQL

Aquí está la consulta SQL para obtener registros de las últimas 24 horas en 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 |
+---------------------+--------+

En la consulta SQL anterior, usamos la función del sistema MySQL ahora() para obtener la fecha y hora actual. Luego usamos la cláusula INTERVAL para seleccionar aquellas filas donde order_date cae dentro de las últimas 24 horas de la fecha y hora actual.

Lectura adicional:Cómo obtener registros de los últimos 15 días en MySQL

En lugar de especificar el intervalo en horas, también puede mencionarlo en días.

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 |
+---------------------+--------+

Las dos consultas anteriores lo ayudarán a obtener registros de las últimas 24 horas.

Lectura adicional:Cómo obtener el último registro en cada grupo en MySQL

Sin embargo, si desea seleccionar filas solo para el día actual, puede usar la siguiente consulta.

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 |
+---------------------+--------+

En la consulta anterior, obtendrá filas solo en la fecha actual y no en las últimas 24 horas. Usamos la función FECHA para seleccionar solo aquellas filas donde el valor de fecha de order_date es el mismo que el valor de fecha de la función now(), es decir, la fecha actual.

Ubiq facilita la visualización de datos en minutos y la supervisión en paneles en tiempo real. ¡Pruébalo hoy!