MariaDB YEARWEEK() 函数使用指南

在 MariaDB 中,YEARWEEK() 是一个内置函数,它返回给定日期的年份和星期序号。

MariaDB YEARWEEK() 语法

这是 MariaDB YEARWEEK() 函数的语法:

YEARWEEK(date)
YEARWEEK(date, mode)

参数

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

如果您提供了错误数量的参数,MariaDB 将报告一个错误:ERROR 1582 (42000): Incorrect parameter count in the call to native function 'YEARWEEK'

返回值

MariaDB YEARWEEK() 函数返回一个表示给定日期所在年份和第几周的数字。

下表整理了 YEARWEEK() 函数对 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

如果指定的表达式不是一个合法的日期或者日期时间,YEARWEEK() 函数将返回 NULL

如果参数为 NULLYEARWEEK() 函数将返回 NULL

MariaDB YEARWEEK() 示例

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

SELECT
    YEARWEEK('2023-01-01', 0),
    YEARWEEK('2023-01-03', 0),
    YEARWEEK('2023-01-01', 1),
    YEARWEEK('2023-01-03', 1),
    YEARWEEK('2023-01-01', 2),
    YEARWEEK('2023-01-03', 2),
    YEARWEEK('2023-01-01', 3),
    YEARWEEK('2023-01-03', 3),
    YEARWEEK('2023-01-01', 4),
    YEARWEEK('2023-01-03', 4),
    YEARWEEK('2023-01-01', 5),
    YEARWEEK('2023-01-03', 5),
    YEARWEEK('2023-01-01', 6),
    YEARWEEK('2023-01-03', 6),
    YEARWEEK('2023-01-01', 7),
    YEARWEEK('2023-01-03', 7)\G

输出:

YEARWEEK('2023-01-01', 0): 202301
YEARWEEK('2023-01-03', 0): 202301
YEARWEEK('2023-01-01', 1): 202252
YEARWEEK('2023-01-03', 1): 202301
YEARWEEK('2023-01-01', 2): 202301
YEARWEEK('2023-01-03', 2): 202301
YEARWEEK('2023-01-01', 3): 202252
YEARWEEK('2023-01-03', 3): 202301
YEARWEEK('2023-01-01', 4): 202301
YEARWEEK('2023-01-03', 4): 202301
YEARWEEK('2023-01-01', 5): 202252
YEARWEEK('2023-01-03', 5): 202301
YEARWEEK('2023-01-01', 6): 202301
YEARWEEK('2023-01-03', 6): 202301
YEARWEEK('2023-01-01', 7): 202252
YEARWEEK('2023-01-03', 7): 202301

default_week_format

如果没有指定 mode 参数,WEEK() 默认将使用 default_week_format 变量的值。我们可以通过以下语句查看 default_week_format 变量的值。

SHOW VARIABLES LIKE 'default_week_format';

输出:

+---------------------+-------+
| Variable_name       | Value |
+---------------------+-------+
| default_week_format | 0     |
+---------------------+-------+

结论

在 MariaDB 中,YEARWEEK() 是一个内置函数,它返回给定日期的年份和星期序号。