Как получить последнее воскресенье и воскресенье перед последним использованием MySQL? - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь получить дату последнего воскресенья и дату воскресенья до этого.

Например:

Today (Tuesday) is '20190604'  
@Last_Sunday = '20190602'  
@Sunday_B4_Last = '20190526'  

Я знаю, как перевести дату в формат ISOно я не знаю, как заставить его показывать воскресенья.

Я нашел ответы на тот же вопрос, но на других языках, таких как PostgreSQL и JS, но ничего для MySQL.

Я нашел какой-то код в Интернетеэто делает что-то очень похожее, но это показывает пятницу, и я не смог заставить его показать пятницу до этого.

Вот код:

select now() - interval (weekday( now())+ 2)% 7+ 1 day 'Previous Friday';

Я был бы признателен за любые ответы, но особенноте, которые объясняют, КАК манипулировать приведенной выше формулой или любой другой формулой, которая дает желаемый результат.

Ответы [ 2 ]

1 голос
/ 04 июня 2019

Опция:

SELECT
  `dates`.`date` - INTERVAL WEEKDAY(`dates`.`date`) % 7 + 1 DAY `Last`,
  `dates`.`date` - INTERVAL WEEKDAY(`dates`.`date`) % 7 + 8 DAY `Previous`
FROM (
  SELECT '2019-06-04' `date`
) `dates`;

См. dbfiddle .

0 голосов
/ 04 июня 2019

Я нашел ответ, который собираюсь использовать:

set @'Sunday before last' = STR_TO_DATE(CONCAT(YEARWEEK(curdate() - INTERVAL 1 WEEK),' Sunday'), '%X%V %W');
set @'Last Sunday' = STR_TO_DATE(CONCAT(YEARWEEK(curdate()),' Sunday'), '%X%V %W') ;

(тогда я могу просто "выбрать" переменные)

...