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的数据库表 包含以下记录:
OrderQuantity | Price | OrderTime |
---|---|---|
100 | 1.58 | 2017-08-18 10:38:42 |
120 | 1.61 | 2018-03-23 07:14:16 |
125 | 1.78 | 2018-09-12 05:25:56 |
50 | 1.80 | 2019-01-16 11:52:05 |
200 | 1.72 | 2020-02-06 09:31:34 |
下面给出的语句可用于获取 OrderTime 列记录的周部分:
SELECT *, WEEK(OrderTime, 5) AS WEEK_Value FROM Orders;
This将产生如下所示的结果:
OrderQuantity | Price | OrderTime | WEEK_Value |
---|---|---|---|
100 | 1.58 | 2017-08-18 10:38:42 | 33 |
120 | 1.61 | 2018-03-23 07:14:16 | 12 |
125 | 1.78 | 2018-09-12 05:25:56 | 37 |
50 | 1.80 | 2019-01-16 11:52:05 | 2 |
200 | 1.72 | 2020-02-06 09:31:34 | 5 |