Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie bekomme ich Daten, die zwischen dem letzten Montag und dem heutigen Tag liegen?

Zuerst müssen Sie mit DAYOFWEEK ausrechnen, wie viele Tage der letzte Montag her ist Funktion, dann subtrahieren Sie diese vom aktuellen 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)

Ich bin mir bei den +/- Zahlen hier nicht 100 % sicher, Sie sollten es aber daraus errechnen können

EDIT:Wenn dies immer nur am Sonntag am Ende des Zeitraums ausgeführt wird, gibt es eine viel einfachere Version -

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