>您可以在MySQL中使用

Year()和

Week()函数来获取给定日期的年份和周数. Week()函数将返回从0到53的周数.因此,如果您的数据跨越多年,则需要使用Year()函数.

>但是,您将更有兴趣了解相关周的开始日期和结束日期.这是我们可以使用非常有趣的函数

DayOfWeek().它返回给定日期的工作日索引(1 =星期日,2 =星期一,…,7 =星期六)

>我们可以使用工作日指数值和实际日期值来使用

Date_Add()函数,以确定给定日期的开始周日期和结束周日期.

尝试以下(如果周从星期日开始):

SELECT

DATE_ADD(`date`, INTERVAL(1 - DAYOFWEEK(`date`)) DAY) AS week_start_date,

DATE_ADD(`date`, INTERVAL(7 - DAYOFWEEK(`date`)) DAY) AS week_end_date,

SUM(qty)

FROM

products

GROUP BY week_start_date, week_end_date

如果周从星期一开始,另一个方便的功能是WeekDay().它返回日期的工作日索引(0 =星期一,1 =星期二,… 6 =星期日).

尝试以下(如果周从星期一开始):

SELECT

DATE_ADD(`date`, INTERVAL(0 - WEEKDAY(`date`)) DAY) AS week_start_date,

DATE_ADD(`date`, INTERVAL(6 - WEEKDAY(`date`)) DAY) AS week_end_date,

SUM(qty)

FROM

products

GROUP BY week_start_date, week_end_date

更多推荐