跳到主要内容
版本: 最新版本-3.5

yearweek

返回给定日期的年份和周数。此函数的工作方式与 MySQL 中的 yearweek() 函数相同。

该函数从 v3.3 版本开始支持。

语法

INT YEARWEEK(DATETIME|DATE date[, INT mode])

参数

  • date: 支持的数据类型为 DATETIME 和 DATE。
  • mode:可选。支持的数据类型为 INT。此参数用于指定计算年份周数的逻辑,即周是从星期日还是星期一开始,以及返回值是否在 0~53 或 1~53 的范围内。取值范围:0~7。默认值:0。如果未指定此参数,则默认使用模式 0。下表描述了此参数的工作方式。
Mode一周的第一天范围第 1 周是第一周……
0星期日0-53当年有星期日
1星期一0-53当年有 4 天或更多天
2星期日1-53当年有星期日
3星期一1-53当年有 4 天或更多天
4星期日0-53当年有 4 天或更多天
5星期一0-53当年有星期一
6星期日1-53当年有 4 天或更多天
7星期一1-53当年有星期一

返回值

返回 INT 类型的值。取值范围:0~53。具体范围取决于 mode 参数。如果 date 的值无效或输入值为空,则返回 NULL

示例

返回日期的年份和周数。 mode 参数的值默认为 0

mysql> SELECT YEARWEEK('2007-01-01', 0);
+---------------------------+
| yearweek('2007-01-01', 0) |
+---------------------------+
| 200653 |
+---------------------------+
mysql> SELECT YEARWEEK('2007-01-01', 1);
+---------------------------+
| yearweek('2007-01-01', 1) |
+---------------------------+
| 200701 |
+---------------------------+
mysql> SELECT YEARWEEK('2007-01-01', 2);
+---------------------------+
| yearweek('2007-01-01', 2) |
+---------------------------+
| 200653 |
+---------------------------+
1 row in set (0.01 sec)