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)