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)