Как заставить MySQL вернуть правильный номер года для недели 53 2012 года, используя режим 7

Как заставить MySQL сообщить мне, что «2013-01-01» — это 53-я неделя 2012?

Я использую режим 7 на определение недели.

Я могу достаточно легко получить номер недели, используя WEEK('2013-01-01', 7)

Проблема в том, что, конечно же, YEAR('2013-01-01') возвращает 2013.


person Wodin    schedule 02.04.2015    source источник


Ответы (1)


Функция YEARWEEK позволяет передайте ему режим. Единственным недостатком является то, что он возвращает год и неделю в году вместе:

SELECT YEARWEEK('2013-01-01', 7);

>> 201253

Вы можете обойти это с помощью SUBSTRING, хотя , если вам действительно нужен только год отдельно:

SELECT SUBSTRING(YEARWEEK('2013-01-01', 7), 1, 4);

>> 2012
person John Flatness    schedule 02.04.2015
comment
Большой! Спасибо. Не знаю, как я пропустил это. - person Wodin; 02.04.2015