sql >> Base de Datos >  >> RDS >> Mysql

MYSQL:¿Cómo puedo encontrar la 'fecha del último lunes' (problema de rendimiento)

Si no está utilizando un MySQL antiguo, puede incluirlo en una función almacenada.

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

y luego llamar

select LastMonday() as LastMonday

Actualización:

Si tiene problemas de rendimiento, puede conservar el valor en una variable de sesión. De esa manera, puede estar seguro de que solo se calculará una vez.

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

(en esta simple consulta no hay diferencia por supuesto...)