sql >> Base de Datos >  >> RDS >> Database

Cómo obtener registros de los últimos 30 días

A veces, es posible que necesite obtener filas de los últimos 30 días u obtener datos del último mes en MySQL. Es fácil obtener registros de los últimos 30 días en MySQL aunque no haya una función integrada para ello. Aquí está la consulta SQL para seleccionar registros de los últimos 30 días.

Cómo obtener registros de los últimos 30 días en MySQL

Aquí está el SQL para obtener registros de los últimos 30 días. Supongamos que tiene la siguiente tabla sales(order_date, sale) que contiene datos de ventas diarias.

mysql> create table sales(order_date date,sale int);

mysql> insert into sales(order_date, sale)
     values('2020-05-04',230),
     ('2020-05-05',200),
     ('2020-05-06',210),
     ('2020-05-07',180),
     ('2020-05-08',220),
     ('2020-05-09',230),
     ('2020-05-10',220),
     ('2020-05-11',225),
     ('2020-05-12',200),
     ('2020-05-13',210),
     ('2020-05-14',190),
     ('2020-05-15',200),
     ('2020-05-16',220),
     ('2020-05-17',210),
     ('2020-05-18',190),
     ('2020-05-19',180),
     ('2020-05-20',250),
     ('2020-05-21',240),
     ('2020-05-22',245),
     ('2020-05-23',230),
     ('2020-05-24',220),
     ('2020-05-25',210),
     ('2020-05-26',130),
     ('2020-05-27',200),
     ('2020-05-28',210),
     ('2020-05-29',221),
     ('2020-05-30',235),
     ('2020-05-31',233),
     ('2020-06-01',237),
     ('2020-06-02',230),
     ('2020-06-03',220),
     ('2020-06-04',210),
     ('2020-06-05',200),
     ('2020-06-06',260),
     ('2020-06-07',270),
     ('2020-06-08',240),
     ('2020-06-09',290),
     ('2020-06-10',230);

mysql> select * from sales;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-05-04 |  230 |
| 2020-05-05 |  200 |
| 2020-05-06 |  210 |
| 2020-05-07 |  180 |
| 2020-05-08 |  220 |
|        ... |  ... |
|        ... |  ... |
| 2020-06-06 |  260 |
| 2020-06-07 |  270 |
| 2020-06-08 |  240 |
| 2020-06-09 |  290 |
| 2020-06-10 |  230 |
+------------+------+

Lectura adicional:Cómo obtener registros entre 2 fechas en MySQL

Cómo obtener registros de los últimos 30 días

Aquí está la consulta SQL para obtener registros de los últimos 30 días en MySQL.

mysql> select * from sales
     where order_date > now() - INTERVAL 30 day;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-05-12 |  200 |
| 2020-05-13 |  210 |
| 2020-05-14 |  190 |
|        ... |  ... | 
|        ... |  ... | 
| 2020-06-08 |  240 |
| 2020-06-09 |  290 |
| 2020-06-10 |  230 |
+------------+------+

En la consulta anterior, seleccionamos aquellos registros donde order_date cae después de un intervalo pasado de 30 días. Usamos la función del sistema ahora() para obtener el último valor de fecha y hora, y la cláusula INTERVALO para calcular una fecha de 30 días en el pasado.

También puede usar fecha_actual en lugar de ahora()

mysql> select * from sales
     where order_date > current_date - interval 30 day;

Lectura adicional:cómo obtener registros de las últimas 24 horas en MySQL

Cómo obtener datos del último mes

Aquí está la consulta SQL para obtener los registros del último mes en MySQL.

mysql> select * from sales
     where order_date > current_date - interval 1 month;
+------------+------+
| order_date | sale |
+------------+------+
| 2020-05-11 |  225 |
| 2020-05-12 |  200 |
| 2020-05-13 |  210 |
|        ... |  ... |
|        ... |  ... |
| 2020-06-08 |  240 |
| 2020-06-09 |  290 |
| 2020-06-10 |  230 |
+------------+------+

Lectura adicional:Cómo obtener registros del mes actual en MySQL

En la consulta anterior, seleccionamos filas donde order_date cae después del último intervalo de 1 mes. Usamos el argumento '1 mes' para la cláusula INTERVALO, en lugar de usar '30 días'

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