Ini adalah versi yang disederhanakan menggunakan matematika tanggal saja:
SELECT LAST_DAY(NOW()) - ((7 + WEEKDAY(LAST_DAY(NOW())) - 4) % 7);
Tergantung pada bagaimana NOW()
dievaluasi (sekali atau dua kali per pernyataan), Anda mungkin ingin tetap membungkusnya dalam suatu fungsi dan menyimpan hasil NOW()
ke dalam variabel, lalu gunakan variabel untuk LAST_DAY(var)
panggilan, untuk menghindari kondisi balapan di mana bulan bergulir di antara panggilan ke NOW()
.