Twoje wyrażenie ADDDATE(DATE_SUB(curdate(), INTERVAL 1 WEEK), 6-WEEKDAY(curdate()))
zwraca tylko część daty z ostatniego dnia tygodnia, więc wszystkie dane po rozpoczęciu tego dnia nie są uwzględniane.
Masz kilka możliwości rozwiązania tego problemu:
- Runda utworzonaNa dzień dzisiejszy bez części czasowej:
SELECT *
FROM your_table
WHERE DATE(createdAt) BETWEEN
SUBDATE(DATE_SUB(curdate(), INTERVAL 1 WEEK), WEEKDAY(curdate())) AND
ADDDATE(DATE_SUB(curdate(), INTERVAL 1 WEEK), 6-WEEKDAY(curdate()));
- Użyj silnej, mniejszej kondycji następnego dnia:
SELECT *
FROM your_table
WHERE
createdAt >= SUBDATE(DATE_SUB(curdate(), INTERVAL 1 WEEK), WEEKDAY(curdate())) AND
createdAt < ADDDATE(DATE_SUB(curdate(), INTERVAL 1 WEEK), 7-WEEKDAY(curdate()));