Mysql
 sql >> Database >  >> RDS >> Mysql

Come ottenere date comprese tra lo scorso lunedì e il giorno corrente?

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()