Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como obter datas entre a última segunda-feira até o dia atual?


Primeiro você precisa descobrir quantos dias atrás foi a última segunda-feira, usando o DAYOFWEEK função, então subtraia isso da data atual -
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)

Não tenho 100% de certeza sobre os números +/- aqui, mas você deve conseguir resolver isso

EDIT:Se isso só for executado no domingo no final do período, existe uma versão muito mais simples -
SELECT * from table
WHERE date >= DATE_SUB(CURDATE(), INTERVAL 6 DAY)
AND   date <= CURDATE()