从周一到周日的mysql周

时间:2011-10-27 10:03:45

标签: mysql

我希望按周分组我的数据,但是星期几从星期一开始。 我如何将我的星期从星期一到星期日分组?

这是我的问题:

SELECT YEARWEEK(dateStats) k,dateStats udate, COUNT(f_shop) sales
FROM sal_import WHERE dateStats BETWEEN "2011-08-15" AND "2011-08-21" GROUP BY YEARWEEK(dateStats)

Between之间的日期从星期一到星期日,我只需要一行结果。

非常感谢

3 个答案:

答案 0 :(得分:23)

YEARWEEK(date[,mode])函数的第二个参数是mode - 就像WEEK(date[,mode])函数一样。

您可以指定开始日期 - 默认为0 (Sunday)

只需将其设为1 (Monday)

YEARWEEK(dateStats, 1)

答案 1 :(得分:0)

您可以为此目的设置全局变量:

More Info

如果你很懒,那就是

  --default_week_format=1

答案 2 :(得分:0)

我建议为这类工作使用日期维度。这允许您为日期指定不同的属性,例如“工作日”,“周末”,“周数”,“财务季”等。

有关详细信息,请参阅我对以下问题的回答;

Select all months within given date span, including the ones with 0 values

然后,您可以使用两个不同的YEARWEEK类型值创建列,将数据连接到维度表,并为其中任何一个生成结果,而无需更改设置等。

希望这对你有所帮助!