Можете да се възползвате от WEEKDAY()
който връща число, представляващо деня от седмицата (0 =понеделник, 6 =неделя) и някои прости математически изчисления за пренаписване на тази заявка.
Извадете деня от седмицата, в който искате да започне седмицата (във вашия случай 4 =четвъртък) от избраната дата, добавете 7 и вземете остатъка от 7. Това ще ви даде броя дни, които трябва да извадите, за да получите началото на диапазона.
Подобна логика се прилага за изчисляване на крайната дата на диапазона.
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;
За различна начална дата заменете деня от седмицата с 4
в заявката.