Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment obtenir des dates comprises entre lundi dernier et aujourd'hui ?

Vous devez d'abord calculer combien de jours il y a lundi dernier était, en utilisant le DAYOFWEEK fonction, puis soustrayez cela de la date actuelle -

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)

Je ne suis pas sûr à 100 % des nombres +/- ici, vous devriez cependant pouvoir le résoudre à partir de cela

EDIT :si cela ne sera exécuté que le dimanche à la fin de la période, il existe une version beaucoup plus simple -

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