MariaDB 函数

MariaDB WEEK() 函数返回给定日期或日期时间值的周部分。它可以在 0-53 或 1-53 之间,具体取决于指定的模式。

WEEKOFYEAR() 函数返回与 WEEK() 函数相同的结果,语法为 WEEK(datetime, 3)。

语法

WEEK(datetime, mode) 

参数

datetime必需。 指定从中提取周的日期或日期时间值。
mode可选。 指定一周从哪一天开始。它可以取 0-7 之间的值。说明见下表:

模式和说明

模式描述返回
0一周的第一天是星期日0-53
1一周的第一天是星期一且第一周超过3天0-53
2一周中的第一天是星期日1-53
3一周中的第一天是星期一,并且第一周有 超过 3 天1-53
4一周的第一天是星期日并且第一周超过 3天0-53
5一周的第一天是星期一0- 53
6一周的第一天是星期日且第一周超过3天1-53
7一周的第一天是星期一1-53
注意:如果省略mode参数,则使用default_week_format系统变量的值。

返回值

返回给定日期或日期时间值的周部分。

示例 1:

下面的示例显示了 WEEK() 函数的用法。

SELECT WEEK('2018-08-18');
Result: 32

SELECT WEEK('2018-08-18 10:38:42');
Result: 32

SELECT WEEK('2018-08-18 10:38:42.000004');
Result: 32

SELECT WEEK('2014-10-25');
Result: 42

SELECT WEEK(CURDATE());
Result: 48 

示例 2:

考虑一个名为 Orders的数据库表 包含以下记录:

OrderQuantityPriceOrderTime
1001.582017-08-18 10:38:42
1201.612018-03-23 07:14:16
1251.782018-09-12 05:25:56
501.802019-01-16 11:52:05
2001.722020-02-06 09:31:34

下面给出的语句可用于获取 OrderTime 列记录的周部分:

SELECT *, WEEK(OrderTime, 5) AS WEEK_Value FROM Orders; 

This将产生如下所示的结果:

OrderQuantityPriceOrderTimeWEEK_Value
1001.582017-08-18 10:38:4233
1201.612018-03-23 07:14:1612
1251.782018-09-12 05:25:5637
501.802019-01-16 11:52:052
2001.722020-02-06 09:31:345