Devi prima calcolare quanti giorni fa lunedì scorso, usando il DAYOFWEEK
funzione, quindi sottrailo dalla data corrente -
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)
Non sono sicuro al 100% dei numeri +/- qui, dovresti essere in grado di risolverlo da questo però
EDIT:se questo verrà eseguito solo la domenica alla fine del periodo, esiste una versione molto più semplice -
SELECT * from table
WHERE date >= DATE_SUB(CURDATE(), INTERVAL 6 DAY)
AND date <= CURDATE()