MariaDB 函数

MariaDB YEARWEEK() 函数返回给定日期或日期时间值的年份值以及周值。

返回的年份值由于指定的模式,可能与日期时间中显示的年份不同。这发生在一年的第一周和最后一周。同样,周值可以在 0-53 或 1-53 之间,具体取决于指定的模式。

语法

YEARWEEK(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:

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

SELECT YEARWEEK('2018-08-18');
Result: 201832

SELECT YEARWEEK('2018-08-18 10:38:42');
Result: 201832

SELECT YEARWEEK('2018-08-18 10:38:42.000004');
Result: 201832

SELECT YEARWEEK('2014-10-20');
Result: 201442

SELECT YEARWEEK(CURDATE());
Result: 202148 

示例 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 *, YEARWEEK(OrderTime, 5) AS YEARWEEK_Value FROM Orders; 

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

OrderQuantityPriceOrderTimeYEARWEEK_Value
1001.582017-08-18 10:38:42201733
1201.612018-03-23 07:14:16201812
1251.782018-09-12 05:25:56201837
501.802019-01-16 11:52:05201902
2001.722020-02-06 09:31:34202005