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

Cómo obtener datos de la semana pasada en MySQL

A veces, es posible que deba obtener las filas de la semana pasada en MySQL para generar informes y análisis. Aquí se explica cómo obtener los datos de la semana pasada en MySQL.

Cómo obtener datos de la semana pasada en MySQL

Estos son los pasos para obtener los datos de la semana pasada en MySQL. Supongamos que tiene la siguiente tabla pedidos_productos(id, fecha_pedido, cantidad)

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

mysql> insert into product_orders values(1,'2020-07-20',100),
     (2,'2020-07-21',250),
     (3,'2020-07-22',225),
     (4,'2020-07-23',150),
     (5,'2020-07-24',200),
     (6,'2020-07-25',180),
     (7,'2020-07-26',150),
     (8,'2020-07-27',200),
     (9,'2020-07-28',250),
     (10,'2020-07-29',300),
     (11,'2020-07-30',150),
     (12,'2020-07-31',200),
     (13,'2020-08-01',180),
     (14,'2020-08-02',200);

mysql> select * from product_orders;
+------+------------+--------+
| id   | order_date | amount |
+------+------------+--------+
|    1 | 2020-07-20 |    100 |
|    2 | 2020-07-21 |    250 |
|    3 | 2020-07-22 |    225 |
|    4 | 2020-07-23 |    150 |
|    5 | 2020-07-24 |    200 |
|    6 | 2020-07-25 |    180 |
|    7 | 2020-07-26 |    150 |
|    8 | 2020-07-27 |    200 |
|    9 | 2020-07-28 |    250 |
|   10 | 2020-07-29 |    300 |
|   11 | 2020-07-30 |    150 |
|   12 | 2020-07-31 |    200 |
|   13 | 2020-08-01 |    180 |
|   14 | 2020-08-02 |    200 |
+------+------------+--------+

Lectura adicional:base de datos de copia de MySQL

Aquí está la consulta SQL para obtener los datos de la semana pasada en MySQL.

mysql> select * from product_orders where week(order_date)=week(now())-1;
+------+------------+--------+
| id   | order_date | amount |
+------+------------+--------+
|    7 | 2020-07-26 |    150 |
|    8 | 2020-07-27 |    200 |
|    9 | 2020-07-28 |    250 |
|   10 | 2020-07-29 |    300 |
|   11 | 2020-07-30 |    150 |
|   12 | 2020-07-31 |    200 |
|   13 | 2020-08-01 |    180 |
+------+------------+--------+

En la consulta SQL anterior, usamos la función WEEK() para obtener el número de semana de order_date columna. Seleccionamos solo aquellos registros cuyo número de semana es 1 menos que el número de semana de la fecha de hoy, obtenido usando la función NOW().

Lectura adicional:inserción de MySQL en Select

Cómo obtener datos de los últimos 7 días en MySQL

A veces, es posible que deba buscar registros de los últimos 7 días. Aquí está la consulta SQL para obtener los datos de los últimos 7 días en MySQL.

mysql> select * from product_orders where order_date> now() -  interval 7 day;
+------+------------+--------+
| id   | order_date | amount |
+------+------------+--------+
|    9 | 2020-07-28 |    250 |
|   10 | 2020-07-29 |    300 |
|   11 | 2020-07-30 |    150 |
|   12 | 2020-07-31 |    200 |
|   13 | 2020-08-01 |    180 |
|   14 | 2020-08-02 |    200 |
+------+------------+--------+

En la consulta anterior, seleccionamos aquellos registros cuya order_date es posterior a un intervalo pasado de 7 días a partir de hoy.

Lectura adicional:MySQL seleccione las N filas principales

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