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()
.