sql >> Database >  >> RDS >> Mysql

Hoe krijg ik datums die tussen afgelopen maandag en de huidige dag liggen?

Je moet eerst berekenen hoeveel dagen geleden afgelopen maandag was, met behulp van de DAYOFWEEK functie, trek die dan af van de huidige datum -

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)

Ik ben niet 100% zeker van de +/- getallen hier, maar je zou hier wel uit moeten kunnen komen

EDIT:als dit alleen op zondag aan het einde van de periode wordt uitgevoerd, is er een veel eenvoudigere versie -

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


  1. MySQL converteert JAARWEEK naar nu

  2. LOCALTIMESTAMP() Functie in Oracle

  3. ER_CON_COUNT_ERROR:Fout te veel verbindingen in node-mysql

  4. Kan ik een kolom gebruiken die ik later in een zoekopdracht heb geselecteerd?