Můžete využít WEEKDAY()
což vrátí číslo představující den v týdnu (0 =pondělí, 6 =neděle) a několik jednoduchých matematických metod pro přepsání tohoto dotazu.
Odečtěte od vybraného data den v týdnu, kterým má týden začínat (ve vašem případě 4 =čtvrtek), přidejte 7 a zbytek odeberte od 7. Tím získáte počet dní, které je třeba odečíst, abyste získali začátek svého rozsahu.
Podobná logika platí pro výpočet data ukončení rozsahu.
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;
Pro jiné počáteční datum nahraďte 4
den v týdnu v dotazu.