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

¿Cómo obtener fechas que están entre el lunes pasado y el día actual?

Primero tienes que calcular cuántos días hace el lunes pasado, usando el DAYOFWEEK luego reste eso de la fecha actual -

SELECT * from table
WHERE date >= DATE_SUB(CURDATE(),INTERVAL MOD(DAYOFWEEK(CURDATE())-2,7) DAY)
AND   date <= DATE_ADD(CURDATE(), INTERVAL MOD(7 - (DAYOFWEEK(CURDATE()) - 1), 7) DAY)

No estoy 100% seguro acerca de los números +/- aquí, aunque deberías poder resolverlo a partir de esto

EDITAR:si esto solo se ejecutará el domingo al final del período, hay una versión mucho más simple:

SELECT * from table
WHERE date >= DATE_SUB(CURDATE(), INTERVAL 6 DAY)
AND   date <= CURDATE()