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

Cómo obtener datos del último mes en MySQL

A veces, es posible que deba obtener el registro del mes pasado u obtener filas del mes anterior. Aquí se explica cómo obtener los datos del último mes en MySQL.

Cómo obtener datos del último mes en MySQL

Estos son los pasos para obtener los datos del último mes en MySQL.

Supongamos que tiene la siguiente tabla pedidos (id, order_date, cantidad) en MySQL que contiene cantidades de pedidos diarios.

mysql> create table orders(id int, order_date date, amount int);

mysql> insert into orders(id,order_date, amount)
     values(1,'2020-07-25',250),
     (2,'2020-07-26',350),
     (3,'2020-07-27',200),
     (4,'2020-07-28',150),
     (5,'2020-07-29',350),
     (6,'2020-07-30',300),
     (7,'2020-07-31',250),
     (8,'2020-08-01',550),
     (9,'2020-08-02',350),
     (10,'2020-08-03',250),
     (11,'2020-08-04',200);

mysql> select * from orders;
+------+------------+--------+
| id   | order_date | amount |
+------+------------+--------+
|    1 | 2020-07-25 |    250 |
|    2 | 2020-07-26 |    350 |
|    3 | 2020-07-27 |    200 |
|    4 | 2020-07-28 |    150 |
|    5 | 2020-07-29 |    350 |
|    6 | 2020-07-30 |    300 |
|    7 | 2020-07-31 |    250 |
|    8 | 2020-08-01 |    550 |
|    9 | 2020-08-02 |    350 |
|   10 | 2020-08-03 |    250 |
|   11 | 2020-08-04 |    200 |
+------+------------+--------+

Lectura adicional:Cómo copiar una tabla en MySQL

Cómo obtener el registro del último mes en MySQL

Aquí está la consulta SQL para obtener el registro del último mes en MySQL

mysql> select * from orders
     where month(order_date)=month(now())-1;
+------+------------+--------+
| id   | order_date | amount |
+------+------------+--------+
|    1 | 2020-07-25 |    250 |
|    2 | 2020-07-26 |    350 |
|    3 | 2020-07-27 |    200 |
|    4 | 2020-07-28 |    150 |
|    5 | 2020-07-29 |    350 |
|    6 | 2020-07-30 |    300 |
|    7 | 2020-07-31 |    250 |
+------+------------+--------+

En la consulta anterior, seleccionamos solo aquellos registros cuyo mes sea uno menos que el mes de la fecha actual. Obtenemos el número de fechas del mes usando la función MONTH(). Obtenemos la fecha actual usando la función NOW().

Según nuestros datos, dado que el mes actual es agosto, obtenemos los registros del mes anterior, es decir, julio.

Con suerte, ahora puede obtener fácilmente los datos del último mes en MySQL.

Lectura adicional:Cómo agregar la restricción NOT NULL en MySQL

Del mismo modo, si desea obtener registros del último mes continuo, es decir, de los últimos 30 días, esta es la consulta SQL para ello.

select * from orders
where order_date>now() - interval 1 month;

En la consulta anterior, seleccionamos filas después del último intervalo de 1 mes. Usamos la cláusula INTERVAL y la función NOW() para obtener la fecha de 1 mes en el pasado, a partir de la fecha actual.

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