Anda dapat memanfaatkan WEEKDAY()
yang mengembalikan angka yang mewakili hari dalam seminggu (0 =Senin, 6 =Minggu) dan beberapa matematika langsung untuk menulis ulang kueri ini.
Kurangi hari kerja yang Anda inginkan untuk memulai minggu (dalam kasus Anda 4 =Kamis) dari tanggal yang dipilih, tambahkan 7 dan ambil sisanya dari 7. Ini akan memberi Anda jumlah hari untuk dikurangi untuk memulai rentang Anda.
Logika serupa berlaku untuk menghitung tanggal akhir rentang.
SELECT *
FROM transactions
WHERE DATE(transactionDate)
BETWEEN DATE_SUB(DATE(NOW()), INTERVAL (WEEKDAY(NOW()) - 4 + 7) % 7 DAY)
AND DATE_ADD(DATE(NOW()), INTERVAL 6 - (WEEKDAY(NOW()) - 4 + 7) % 7 DAY)
ORDER BY transactionDate DESC;
Untuk tanggal mulai yang berbeda, ganti hari kerja dengan 4
dalam kueri.