Ekspresi Anda ADDDATE(DATE_SUB(curdate(), INTERVAL 1 WEEK), 6-WEEKDAY(curdate()))
hanya mengembalikan tanggal bagian dari hari minggu lalu, jadi semua data setelah mulai hari ini tidak disertakan.
Anda memiliki beberapa opsi untuk menyelesaikan ini:
- Putaran dibuat Hingga saat ini tanpa bagian waktu:
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()));
- Gunakan kondisi strong less dengan hari berikutnya:
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()));