MySQL 周日期函数返回给定日期的周数。此周函数接受两个参数。第一个是日期,第二个参数决定周是从星期日还是星期一开始。返回值应在 0 到 53 或 1 到 53 的范围内。
MySQL 周函数语法
周函数的基本语法如下所示
Week(date, Mode);
在此,Mode 是一个可选参数。下表显示了 Mode 参数的返回值。例如,如果 Mode= 0,则周从星期日开始,返回值在 0 到 53 之间。
| 模式 | 一周的第一天 | 范围 | 第 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 | 给定年份的第一个星期一 |
MySQL 周函数示例
以下示例可以帮助您理解此周函数的用法。在这里,我们返回有无模式参数的周数。
SELECT WEEK('2019-02-21');
SELECT WEEK('2019-02-21', 0);
SELECT WEEK('2019-02-21', 1);

让我们来看另一个周日期方法的示例。
SELECT WEEK('2018-12-31', 1);
SELECT WEEK('2018-12-31', 2);
SELECT WEEK('2018-12-31', 3);

MySQL 周函数示例 2
让我们来看另一个周函数的示例。这次,我们使用更多模式值和不同的MySQL日期。
SELECT WEEK('2018-10-31', 4);
SELECT WEEK('2018-05-24', 1);
SELECT WEEK('2018-02-02', 3);

如果日期落在上一周的最后一周,则周函数返回 0。为避免这种情况,您可以使用 2、3、6 或 7 作为模式参数值。
SELECT WEEK('2018-01-01', 0);
SELECT WEEK('2018-01-01', 2);
SELECT WEEK('2018-01-01', 6);
