sql >> Databasteknik >  >> RDS >> Mysql

Hur får man datum som är mellan sista måndagen till nuvarande dag?

Du måste först räkna ut hur många dagar sedan förra måndagen var, med hjälp av DAYOFWEEK funktion, subtrahera sedan det från det aktuella datumet -

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)

Jag är inte 100 % säker på +/- siffrorna här, men du borde kunna räkna ut det från detta

EDIT:Om detta bara kommer att köras på söndagen i slutet av perioden finns det en mycket enklare version -

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


  1. MySQL-grupp efter anpassad tidsstämpel

  2. Fråga en tabells utländska nyckelrelationer

  3. MySQL kontrollera om det finns flera rader

  4. Hur man visar fel i sqlplus