MySQL Obtener datos de los últimos 30 días

Migel Hewage Nimesha 20 junio 2023
  1. Importar datos a la base de datos
  2. Utilice la función del sistema ahora() para obtener los datos de los últimos 30 días en MySQL
  3. Use current_date() para obtener los datos de los últimos 30 días en MySQL
  4. Utilice la función del sistema date_sub() para obtener los datos de los últimos 30 días en MySQL
  5. Utilice el comando entre para obtener los datos de los últimos 30 días en MySQL
  6. Conclusión
MySQL Obtener datos de los últimos 30 días

Este artículo enseña cómo obtener los registros de datos de los últimos 30 días de la base de datos mediante consultas SQL.

Importar datos a la base de datos

Primero, importe algunos datos de muestra a la base de datos mediante una consulta SQL. Antes de importar un conjunto de datos, debemos crear una tabla en una base de datos.

Consulta SQL:

create table sales(order_date date, sale int);

La sintaxis anterior crea una tabla de ventas, con dos columnas como fecha_pedido y venta. Los tipos de fecha_pedido y venta son fecha e int, respectivamente.

A continuación, importemos algunos datos a la tabla a través de entradas manuales.

Consulta SQL:

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

Producción:

MySQL Obtener datos de los últimos 30 días - Importar datos

Después de importar datos, ahora podemos extraer los datos según nuestros requisitos.

Este artículo explicará tres métodos para obtener datos de la base de datos de los últimos 30 días. Aunque no hay funciones integradas para obtener registros de los últimos 30 días en MySQL, el uso de las siguientes consultas SQL permitirá obtenerlos.

Utilice la función del sistema ahora() para obtener los datos de los últimos 30 días en MySQL

Si queremos obtener todos los registros de la tabla ventas, podemos usar la consulta a continuación, que ayuda a mostrar todos los registros de la tabla ventas.

Consulta SQL:

select * from sales

Podemos obtener los registros de los últimos 30 días modificando la consulta SQL anterior.

Consulta SQL:

select * from sales
where order_date > now() - interval 30 day;

Con la consulta anterior, podemos seleccionar registros en los que order_date cae después de un intervalo de los últimos 30 días.

Producción:

MySQL Obtener datos de los últimos 30 días - Salida 1

La función del sistema ahora() obtiene el último valor de fecha y hora, y la cláusula intervalo calcula la fecha 30 días antes.

La sintaxis de la cláusula intervalo es la siguiente.

interval expr unit
  1. expr - la cantidad
  2. unidad: la unidad de la cantidad interpretada (p. ej., HORA, DÍA o SEMANA)
  3. intervalo - palabra clave y el especificador de unidad

Estos no distinguen entre mayúsculas y minúsculas y pueden funcionar en expresiones combinando intervalo con el operador + o -.

Use current_date() para obtener los datos de los últimos 30 días en MySQL

En lugar de ahora(), podemos usar fecha_actual(). A continuación se muestra la consulta SQL sobre cómo vamos a usar eso.

Consulta SQL:

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

Producción:

MySQL Obtener datos de los últimos 30 días - Salida 2

En esta consulta, el proceso es el mismo que el de la consulta SQL anterior, y aquí estamos reemplazando ahora() por fecha_actual().

Utilice la función del sistema date_sub() para obtener los datos de los últimos 30 días en MySQL

El uso de la siguiente consulta SQL también ayudará a obtener registros de 30 días.

Consulta SQL:

select * from sales
where  `order_date` >= date_sub(curdate(), interval 30 day)

Producción:

MySQL Obtener datos de los últimos 30 días - Salida 3

De acuerdo con lo anterior, han utilizado dos métodos únicos que difieren del método discutido anteriormente.

Aquí han usado la función curdate() para encontrar la fecha actual mientras que date_sub() se usa para restar 30 días del DateTime actual calculado.

Como se muestra en el resultado, la consulta SQL extrae y muestra los datos de los últimos 30 días del conjunto de datos.

Utilice el comando entre para obtener los datos de los últimos 30 días en MySQL

La siguiente consulta es una combinación de los métodos anteriores. A diferencia de los métodos anteriores, aquí estamos usando el comando ENTRE en la consulta SQL.

Consulta SQL:

select date_format(order_date,'%Y/%m/%d') from sales
where order_date between now() - interval 30 day and now()

Producción:

MySQL Obtener datos de los últimos 30 días - Salida 4

El uso del comando entre habilita la prevención de obtener registros futuros y genera exactamente los registros entre el período dado.

Aquí extrae los registros entre los últimos 30 días hasta el último día. En la primera consulta, defina el formato de fecha para acceder fácilmente a la salida.

Conclusión

En general, podemos obtener los registros de los últimos 30 días y mostrarlos utilizando los métodos anteriores. Puede haber más métodos para obtener los registros de datos de los últimos 30 días con la combinación de los métodos mencionados anteriormente, pero estos son los métodos más comunes para extraer los registros de datos de los 30 días anteriores.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

Artículo relacionado - MySQL Date