Hvis du ikke bruger en gammel MySQL, kan du pakke dette ind i en gemt funktion.
CREATE FUNCTION `LastMonday`() RETURNS DATETIME
RETURN DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) ;
og ring derefter
select LastMonday() as LastMonday
Opdatering:
Hvis du har problemer med ydeevnen, kan du bevare værdien i en sessionsvariabel. På den måde kan du være sikker på, at det kun bliver beregnet én gang.
set @LastMonday=LastMonday();
select @Lastmonday;
(i denne simple forespørgsel gør det selvfølgelig ingen forskel...)