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

Hvordan får man datoer, der er mellem sidste mandag til den nuværende dag?

Du skal først regne ud, hvor mange dage siden sidste mandag var ved at bruge DAYOFWEEK funktion, og træk det derefter fra den aktuelle dato -

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)

Jeg er ikke 100 % sikker på +/- tallene her, du burde dog kunne regne det ud fra dette

EDIT:Hvis dette kun vil blive kørt på søndag i slutningen af ​​perioden, er der en meget enklere version -

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


  1. JSON_SET() vs JSON_INSERT() vs JSON_REPLACE() i MySQL:Hvad er forskellen?

  2. BOB - forespørgsel giver ingen resultater

  3. Ligheder og forskelle mellem funktionerne RANK, DENSE_RANK og ROW_NUMBER

  4. Oversete T-SQL-perler