周数返回上一周的上一周数字,在1月份的mysql中

时间:2016-01-11 07:41:02

标签: mysql

我在mysql中获取2016-01-01(第一周)的周数时面临一个问题。如果我使用week()函数或weekofyear()函数,则返回53。我必须得到1,因为我在其他地方的项目中链接 weeknumber ,如果它返回1,那么下周的数字也应该根据它调整。请任何人帮助我。

1 个答案:

答案 0 :(得分:1)

manual说:

  

如果包含1月1日的一周在新的一年中有4天或更多天,   这是第1周。

     

否则,它是上一年的最后一周,也是下一周   是第1周。

因此,您可以将mode提供给周功能。

Mode   First day of week    Range   Week 1 is the first week …
0      Sunday               0-53    with a Sunday in this year
1      Monday               0-53    with 4 or more days this year
2      Sunday               1-53    with a Sunday in this year
3      Monday               1-53    with 4 or more days this year
4      Sunday               0-53    with 4 or more days this year
5      Monday               0-53    with a Monday in this year
6      Sunday               1-53    with 4 or more days this year
7      Monday               1-53    with a Monday in this year

这样的事情:

select WEEK('2016-01-01',0) + 1;

<强> FIDDLE DEMO