Du kan drage fordel af WEEKDAY()
som returnerer et tal, der repræsenterer ugedagen (0 =mandag, 6 =søndag) og noget ligetil matematik for at omskrive denne forespørgsel.
Træk den ugedag, du ønsker, ugen skal starte på (i dit tilfælde 4 =torsdag) fra den valgte dato, tilføj 7 og tag resten fra 7. Dette vil give dig det antal dage, du skal trække fra for at få starten på dit interval.
En lignende logik gælder for at beregne slutdatoen for området.
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;
For en anden startdato skal du erstatte ugedagen med 4
i forespørgslen.