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 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    示例 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