MYSQL 如何获取一周的开始和结束日期?

问题描述

在我进行查询之后,在使用 YEAR()、MONTH() 和 WEEK() 函数对它们进行分组后,我已经得到了年、月和周。但是,我在某个地方丢失了显示查询的开始日期和结束日期。

交货日期 isActive
18/1/2021 1
19/1/2021 1
20/1/2021 1
SELECT CONCAT(YEAR(delivery_date),' / ',MONTH(delivery_date),WEEK(delivery_date)) AS WEEK
  FROM ode_orders 
 WHERE isActive = 1 
 GROUP 
    BY WEEK

分组和串联的结果

2021 / 1 / 3

如何显示一周的开始和结束日期?

比如下面这张表?

年/月/周 开始日期 结束日期
2021 / 1 / 3 18/1/2021 20/1/2021

解决方法

如何获取一周的开始和结束日期?

SELECT CONCAT(@year,'-01-01') + INTERVAL @week WEEK - INTERVAL WEEKDAY(CONCAT(@year,'-01-01')) DAY as first_day_of_week,CONCAT(@year,'-01-01')) - 6 DAY as last_day_of_week;

@month 源数据是多余的,周完全由年和周数决定。

fiddle