Перейти к основному содержимому

yearweek

Описание

Возвращает год и номер недели для заданной даты. Эта функция работает так же, как функция yearweek() в MySQL.

Эта функция поддерживается начиная с версии 1.5.0.

Синтаксис

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

Параметры

  • date: Поддерживаемые типы данных — DATETIME и DATE.
  • mode: необязательный. Поддерживаемый тип данных — INT. Этот параметр используется для указания логики вычисления номера года и недели, то есть начинается ли неделя с воскресенья или понедельника, и находится ли возвращаемое значение в диапазоне 053 или 153. Диапазон значений: 0~7. Значение по умолчанию: 0. Если этот параметр не указан, по умолчанию используется режим 0. В следующей таблице описано, как работает этот параметр.
РежимПервый день неделиДиапазонНеделя 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. Возвращается NULL, если значение date недействительно или входное значение пустое.

Примеры

Возвращает год и неделю для даты. Значение аргумента 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)