#WEEK

week
WEEK ( date , mode )

WEEK函数返回date指定日期所在日历周的周数。mode参数用于指定一周的第一天是周一或周日、返回值范围是0-53或1-53以及如何确定一年的第一周。

若不指定mode参数,默认使用DEFAULT_WEEK_FORMAT系统变量值,请查阅系统变量(mysql模式)

mode参数取值及效果如下表:

mode值 周的第一天 返回值 指定年的第一周的条件
0 周日 0-53 第一个包含周日的周
1 周一 0-53 第一个包含指定年内至少4天的周
2 周日 1-53 第一个包含周日的周
3 周一 1-53 第一个包含指定年内至少4天的周
4 周日 0-53 第一个包含指定年内至少4天的周
5 周一 0-53 第一个包含周一的周
6 周日 1-53 第一个包含指定年内至少4天的周
7 周一 1-53 第一个包含周一的周

当mode参数值为1、3、4、6时,周数符合ISO 8601:1988,即:

  • 若1月1日所在的周在新的一年里存在至少4天,那么该周是第一周;

  • 否则,该周是上一年的最后一周,该周的下一周是第一周。

当mode参数值为1、4、5、8时,WEEK函数的返回值总符合date参数指定的年份,即如果date指定的日期是前一年的最后一周,那么WEEK函数返回0而不是52。

示例(单机HEAP表)

SELECT WEEK('2025-1-1') res FROM DUAL;

res               
----------------- 
0

SELECT WEEK('2025-1-1', 2) res FROM DUAL;

res               
----------------- 
52
pdf-btn 下载文档 copy-btn 复制链接
edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流