Mysql
 sql >> Base de données >  >> RDS >> Mysql

MYSQL :Comment puis-je trouver la "date de lundi dernier" (problème de performances)

Si vous n'utilisez pas un ancien MySQL, vous pouvez l'envelopper dans une fonction stockée.

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

puis appelez

select LastMonday() as LastMonday

Mise à jour :

Si vous rencontrez des problèmes de performances, vous pouvez conserver la valeur dans une variable de session. De cette façon, vous pouvez être sûr qu'il ne sera calculé qu'une seule fois.

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

(dans cette requête simple, cela ne fait aucune différence bien sûr...)