Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


YEARWEEK

📄字数 782
👁️阅读量 加载中...

功能描述

返回日期所在的年份和周数。当 date 参数中有表示一年的第一周或最后一周的日期时,结果中的年份可能与参数中的年份不同。

提示

  • WEEK(date, 0)WEEK(date, 1) 返回的周数不同,因为 WEEK() 是在给定年份的上下文中返回的周数,而 YEARWEEK 则表示日期所处的真实年份和周数。例如:SELECT WEEK('2024-01-01', 0),返回 0,表示属于 2024 年的第 0 周;SELECT YEARWEEK('2024-01-01'),返回 202353,表示处于 2023 年的第 53 周。

语法格式

sql
YEARWEEK(date[, mode])

输入参数

  • dateDATETIME 类型,当参数为 TIME 类型时,其对应的日期为当前系统日期。
  • mode:用于确定周数计算的逻辑,INTEGER 类型,可选参数,缺省值为 0

下表详细描述了mode的取值范围,以及工作机制:

mode一周的第一天周数范围第一周的定义标准
0, 2Sunday1-53包含本年度第一个周日的周
1, 3Monday1-53包含至少4天属于本年度的周(ISO 8601标准)
4, 6Sunday1-53包含至少4天属于本年度的周
5, 7Monday1-53包含本年度第一个周一的周

提示

  • NULL 无具体的类型,当第一个参数为 NULL 时,会产生异常 E10100 候选函数出现多义性,需要手动为参数指定具体的类型,如:YEARWEEK(NULL::DATE)YEARWEEK(NULL::DATE, NULL)

输出结果

返回 INTEGER 类型,输入参数为 NULL 时,输出结果为 NULL

示例

sql
-- 返回 '2023-03-16' 所处的年份和周数
SQL> SELECT YEARWEEK('2023-03-16');

+--------+
| EXPR1  |
+--------+
| 202311 |
+--------+

-- 返回 '2025-01-04' 和 '2025-01-05' 所处的年份和周数
SQL> SELECT YEARWEEK('2025-01-04'), YEARWEEK('2025-01-05');

+--------+--------+
| EXPR1  | EXPR2  |
+--------+--------+
| 202452 | 202501 |
+--------+--------+