通常,一年的正常年份为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)