Я поставил вопрос ранее, на который был дан правильный ответ, и заставил меня найти, что моя функция YEARWEEK() использовала нулевой режим по умолчанию и давала мне результаты, которых я не хотел. Я прочитал руководство для YEARWEEK, которое ссылалось на WEEK относительно режимов, и он сказал, что если аргумент режима не используется, используется значение default_week_format. Я решил, что мне нужен режим 6, поэтому я принял необходимые меры, чтобы изменить переменную на 6. Однако это изменение влияет только на функцию WEEK ().
Я получаю следующие результаты:
SELECT YEARWEEK(NOW())
201301
SELECT YEARWEEK(NOW(), 6)
201302
SELECT WEEK(NOW())
2
SELECT WEEK(NOW(), 6)
2
Это проблема с MySQL или что-то я делаю неправильно? Я читаю руководство несколько раз, и он конкретно указывает в описании YEARWEEK: «Аргумент mode работает точно так же, как аргумент mode для WEEK ()». Однако в нем конкретно не указано (как в описании WEEK): «Если аргумент mode опущен, используется системная переменная default_week_format».
Должна ли YEARWEEK() использовать значение переменной, если она не указана, или я ошибаюсь в этом отношении? Мне кажется, что эти две функции должны вести себя одинаково, тем более, что одно относится к другому для этой части его описания.