НЕДЕЛЯ
Синтаксис
WEEK(date[,mode])
Описание
Эта функция возвращает номер недели для date. Двухаргументный вариант WEEK() позволяет указать, начинается ли неделя с воскресенья или понедельника, а также, должен ли возвращаемое значение быть в диапазоне от 0 до 53 или от 1 до 53. Если аргумент mode опущен, используется значение системной переменной default_week_format.
Режимы
| Режим | Первый день недели | Диапазон | Неделя 1 — это неделя с |
|---|---|---|---|
| 0 | Воскресенье | 0-53 | воскресеньем в этом году |
| 1 | Понедельник | 0-53 | более чем 3 днями в этом году |
| 2 | Воскресенье | 1-53 | воскресеньем в этом году |
| 3 | Понедельник | 1-53 | более чем 3 днями в этом году |
| 4 | Воскресенье | 0-53 | более чем 3 днями в этом году |
| 5 | Понедельник | 0-53 | понедельником в этом году |
| 6 | Воскресенье | 1-53 | более чем 3 днями в этом году |
| 7 | Понедельник | 1-53 | понедельником в этом году |
С значением режима 3, что означает «более чем 3 днями в этом году», недели нумеруются в соответствии с ISO 8601:1988.
Примеры
SELECT WEEK('2008-02-20');
+--------------------+
| WEEK('2008-02-20') |
+--------------------+
| 7 |
+--------------------+
SELECT WEEK('2008-02-20',0);
+----------------------+
| WEEK('2008-02-20',0) |
+----------------------+
| 7 |
+----------------------+
SELECT WEEK('2008-02-20',1);
+----------------------+
| WEEK('2008-02-20',1) |
+----------------------+
| 8 |
+----------------------+
SELECT WEEK('2008-12-31',0);
+----------------------+
| WEEK('2008-12-31',0) |
+----------------------+
| 52 |
+----------------------+
SELECT WEEK('2008-12-31',1);
+----------------------+
| WEEK('2008-12-31',1) |
+----------------------+
| 53 |
+----------------------+
SELECT WEEK('2019-12-30',3);
+----------------------+
| WEEK('2019-12-30',3) |
+----------------------+
| 1 |
+----------------------+
CREATE TABLE t1 (d DATETIME);
INSERT INTO t1 VALUES
("2007-01-30 21:31:07"),
("1983-10-15 06:42:51"),
("2011-04-21 12:34:56"),
("2011-10-30 06:31:41"),
("2011-01-30 14:03:25"),
("2004-10-07 11:19:34");
SELECT d, WEEK(d,0), WEEK(d,1) from t1; +---------------------+-----------+-----------+ | d | WEEK(d,0) | WEEK(d,1) | +---------------------+-----------+-----------+ | 2007-01-30 21:31:07 | 4 | 5 | | 1983-10-15 06:42:51 | 41 | 41 | | 2011-04-21 12:34:56 | 16 | 16 | | 2011-10-30 06:31:41 | 44 | 43 | | 2011-01-30 14:03:25 | 5 | 4 | | 2004-10-07 11:19:34 | 40 | 41 | +---------------------+-----------+-----------+
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проверяется предварительно MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают точку зрения MariaDB или любой другой стороны.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/week/