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!