Hier is een vereenvoudigde versie met alleen datumberekening:
SELECT LAST_DAY(NOW()) - ((7 + WEEKDAY(LAST_DAY(NOW())) - 4) % 7);
Afhankelijk van hoe NOW() wordt geëvalueerd (een of twee keer per instructie), wilt u dit misschien nog steeds in een functie verpakken en het resultaat van NOW() opslaan in een variabele, en gebruik vervolgens de variabele voor de LAST_DAY(var) oproep, om een race-conditie te voorkomen waarbij de maand verstrijkt tussen oproepen naar NOW() .