通常,一年的正常年份为365天,闰年为366天。一年又可以分为许多周,每周有7天。 所以一年,我们经常有365/7 = 52周,周范围是从1到52。

要查看给定日期属于哪个周数,您可以使用WEEK函数,语法如下所示:WEEK(date[,mode])

该函数返回date 对应的星期数。其中:date是要获取周数的日期

mode是一个可选参数,用于确定周数计算的逻辑。它允许您指定本周是从星期一还是星期日开始,返回的周数应在0到52之间或0到53之间。

如果忽略mode参数,默认情况下WEEK函数将使用 default_week_format 系统变量的值。

要获取 default_week_format 变量的当前值,可以使用 SHOW VARIABLES 语句如下:mysql> show variabl

es like 'default_week_format';
+---------------------+-------+
| Variable_name       | Value |
+---------------------+-------+
| default_week_format | 0     |
+---------------------+-------+
1 row in set, 1 warning (0.00 sec)

mode 参数的使用

默认情况下,default_week_format的默认值为0,下面的表格说明了 mode 参数的工作过程:模式一周的第一天范围第一周是怎么计算的0星期日0-53从本年的第一个星期日开始,是第一周。前面的计算为第0周

1星期一0-53假如1月1日到第一个周一的天数超过3天,则计算为本年的第一周。否则为第0周

2星期日1-53从本年的第一个星期日开始,是第一周。前面的计算为上年度的第5x周

3星期一1-53假如1月1日到第一个周日天数超过3天,则计算为本年的第一周。否则为上年度的第5x周

4星期日0-53假如1月1日到第一个周日的天数超过3天,则计算为本年的第一周。否则为第0周

5星期一0-53从本年的第一个星期一开始,是第一周。前面的计算为第0周。

6星期日1-53假如1月1日到第一个周日的天数超过3天,则计算为本年的第一周。否则为上年度的第5x周

7星期一1-53从本年的第一个星期一开始,是第一周。前面的计算为上年度的第5x周

举例:

查看当天属于哪一周:

mysql> select week(now());
+-------------+
| week(now()) |
+-------------+
|          35 |
+-------------+
1 row in set (0.00 sec)