Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MYSQL:Wie finde ich das Datum des letzten Montags (Leistungsproblem)

Wenn Sie kein altes MySQL verwenden, können Sie dies in eine gespeicherte Funktion packen.

CREATE FUNCTION `LastMonday`() RETURNS DATETIME    
  RETURN DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) ;

und dann anrufen

select LastMonday() as LastMonday

Aktualisierung:

Wenn Sie Leistungsprobleme haben, können Sie den Wert in einer Sitzungsvariablen beibehalten. So können Sie sicher sein, dass es nur einmal berechnet wird.

set @LastMonday=LastMonday();
select @Lastmonday; 

(bei dieser einfachen Abfrage spielt das natürlich keine Rolle...)