问题描述
在我进行查询之后,在使用 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
源数据是多余的,周完全由年和周数决定。