如何使用 mysql 中的周数获取开始和结束周日期?

How to get start and end week date using week number in mysql?

我可以很容易地得到开始日期和周末,如下所示。

SELECT
    COUNT(*) AS reports_in_week,
    DATE_ADD(mydate, INTERVAL(1-DAYOFWEEK(mydate)) DAY),
    DATE_ADD(mydate, INTERVAL(7-DAYOFWEEK(mydate)) DAY)
FROM mytable
where WEEK(mydate,1) = '29'
GROUP BY WEEK(mydate,1)

但问题是列日期的大小写索引不起作用,如果我在索引之间传递日期范围将起作用,我尝试使用周数获​​取一周的开始日期和结束日期;

我是 mysql 的初学者,请帮忙。

如果您想在给定的周 和年份 上进行过滤,那么一种选择是使用 str_to_date() 从年份和周数生成日期范围:

where 
        mydate >= str_to_date('2020-29 Monday', '%Y-%u %W')
    and mydate <  str_to_date('2020-29 Monday', '%Y-%u %W') + interval 7 day

%u 说明符表示周数,星期一是一周的第一天(因此这类似于查询使用的模式 1 中的 WEEK())。

上面的 where 谓词将利用 mydate 上的索引 - 这似乎是您的目的。