MySQL WEEK() 函数使用指南

MySQL WEEK() 函数返回给定日期位于当年的第几周。

WEEK() 语法

这是 MySQL WEEK() 函数的语法:

WEEK(date)
WEEK(date, mode)

参数

date
必需的。一个日期或者日期时间表达式。
mode
可选的。确定计算周的逻辑。如果没有指定该参数,默认将使用 default_week_format 变量的值。

返回值

MySQL WEEK() 函数返回给定日期位于当年的第几周,取值范围为 053

下表整理了 WEEK() 函数对 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
  • 如果指定的表达式不是一个合法的日期或者日期时间,WEEK() 函数将返回 NULL
  • 如果参数为 NULLWEEK() 函数将返回 NULL

WEEK() 示例

这里是几个 WEEK() 函数的示例。

SELECT
    WEEK('2022-01-01', 0),
    WEEK('2022-01-03', 0),
    WEEK('2022-01-01', 1),
    WEEK('2022-01-03', 1),
    WEEK('2022-01-01', 2),
    WEEK('2022-01-03', 2),
    WEEK('2022-01-01', 3),
    WEEK('2022-01-03', 3),
    WEEK('2022-01-01', 4),
    WEEK('2022-01-03', 4),
    WEEK('2022-01-01', 5),
    WEEK('2022-01-03', 5),
    WEEK('2022-01-01', 6),
    WEEK('2022-01-03', 6),
    WEEK('2022-01-01', 7),
    WEEK('2022-01-03', 7)\G
WEEK('2022-01-01', 0): 0
WEEK('2022-01-03', 0): 1
WEEK('2022-01-01', 1): 0
WEEK('2022-01-03', 1): 1
WEEK('2022-01-01', 2): 52
WEEK('2022-01-03', 2): 1
WEEK('2022-01-01', 3): 52
WEEK('2022-01-03', 3): 1
WEEK('2022-01-01', 4): 0
WEEK('2022-01-03', 4): 1
WEEK('2022-01-01', 5): 0
WEEK('2022-01-03', 5): 1
WEEK('2022-01-01', 6): 52
WEEK('2022-01-03', 6): 1
WEEK('2022-01-01', 7): 52
WEEK('2022-01-03', 7): 1