我在mysql中获取2016-01-01(第一周)的周数时面临一个问题。如果我使用week()
函数或weekofyear()
函数,则返回53。我必须得到1,因为我在其他地方的项目中链接 weeknumber ,如果它返回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 强>