MySQL: Как я могу найти 'дату в прошлый понедельник' (Проблема производительности)

$0 установлен на "-e" если Вы работаете от -e.

9
задан lexu 8 April 2013 в 06:53
поделиться

1 ответ

Если вы не используете старый MySQL, вы можете заключить это в сохраненную функцию.

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

, а затем вызвать

select LastMonday() as LastMonday

Обновление:

Если у вас проблемы с производительностью , вы можете сохранить значение в переменной сеанса. Таким образом, вы можете быть уверены, что он будет рассчитан только один раз.

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

(в этом простом запросе это, конечно, не имеет значения ...)

29
ответ дан 4 December 2019 в 07:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: