Справочник по функциям

WEEK

Аналог в PostgreSQL:

Возвращает номер недели в году для даты.

MySQL 8.1
WEEK(date[, mode])
  • [ ]необязательная часть
date
Дата или дата со временем
DATE
mode
Режим нумерации недель; по умолчанию берётся из переменной default_week_format, обычно 0
INTНеобязательный
01234567

Возвращаемое значение

Целое число от 0 до 53 или от 1 до 53 — в зависимости от mode; NULL для неполной даты и нераспознанного значения

Примеры

Номер недели по умолчанию

MySQL 8.1
SELECT WEEK('2022-06-16');
WEEK('2022-06-16')
24

Первое января в разных режимах

MySQL 8.1
SELECT WEEK('2022-01-01') AS mode_0,
	WEEK('2022-01-01', 3) AS mode_3;
mode_0mode_3
052

Подробности

Дни до первой недели года в режимах 0, 1, 4 и 5 получают номер 0, а в режимах 2, 3, 6 и 7 — номер последней недели прошлого года: WEEK('2022-01-01', 0) вернёт 0, а WEEK('2022-01-01', 2) — 52.

Бывает и наоборот: в режимах 3 и 6 последние дни декабря могут попасть в первую неделю следующего года: WEEK('2024-12-30', 3) вернёт 1. Чтобы видеть и год недели, используйте YEARWEEK.

modeПервый день неделиДиапазонНеделя 1 — первая неделя, в которой
0Воскресенье0–53есть воскресенье
1Понедельник0–534 или больше дней этого года
2Воскресенье1–53есть воскресенье
3Понедельник1–534 или больше дней этого года (ISO 8601)
4Воскресенье0–534 или больше дней этого года
5Понедельник0–53есть понедельник
6Воскресенье1–534 или больше дней этого года
7Понедельник1–53есть понедельник

Смотрите также