如何获取最后一个星期日和最后一个星期日之前使用MySQL?

How to get last Sunday and Sunday before last using MySQL?

我正在尝试获取上周日和上周日的日期。

例如:

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';

我将不胜感激任何答案,尤其是那些解释如何操作上述公式或任何其他给出所需结果的公式的答案。

一个选项:

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

我找到了我要使用的答案:

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') ;

(然后我可以 "select" 变量)