Ihr Ausdruck ADDDATE(DATE_SUB(curdate(), INTERVAL 1 WEEK), 6-WEEKDAY(curdate()))
gibt nur einen Datumsteil des letzten Wochentages zurück, daher sind alle Daten nach dem Start dieses Tages nicht enthalten.
Sie haben mehrere Möglichkeiten, dies zu lösen:
- Runde erstellt bis heute ohne Zeitteil:
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()));
- Am nächsten Tag stark weniger Kondition verwenden:
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()));