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

week — функция скриптa и диаграммы

Эта функция возвращает номер недели в виде целого числа согласно стандарту ISO 8601. Номер недели высчитывается на основе интерпретации данных выражения согласно стандартной интерпретации чисел.

Синтаксис:  

week(timestamp [, first_week_day [, broken_weeks [, reference_day]]])

Диаграмма с примером функции week() с неполными неделями

Диаграмма, демонстрирующая, как функция разбивает даты в первом месяце года, применяя систему неполных недель по умолчанию.

Отсчет номеров недель начинается с 1 января (так как по умолчанию задано Qlik Sense для использования неполных недель). Первая неделя заканчивается за день до системной переменной FirstWeekDay независимо от того, сколько дней прошло в этой неделе. Системная переменная FirstWeekDay может подавляться в функции week() аргументом first_week_day.

Диаграмма с примером функции week() с полными неделями и аргументом ReferenceDay=0

Диаграмма, демонстрирующая, как функция разбивает даты в первом месяце года, без применения системы неполных недель.

Функция week() также позволяет указать, следует использовать полные или неполные недели, с помощью аргумента broken_weeks. Если используется поддержка неполных недель, то неделя 1 должна включать определенное количество дней в январе, заданное системной переменной ReferenceDay. Таким образом, неделя 1 может начаться в декабре, а неделя 52 или 53 может заканчиваться в январе. В заключение аргумент reference_day позволяет функции переопределить системную переменную ReferenceDay.

В отличие от функции weekname(), функция week() не возвращает в результате значение года. Это позволяет при агрегировании сравнить недели разных годов.

В этой функции можно использовать четыре аргумента.

Это дата для проверки в виде метки времени или выражения, определяемого по метке времени, которую требуется преобразовать, например «2012-10-12».

Если не указать first_week_day, значение переменной FirstWeekDay будет использовано как первый день недели.

Если необходимо использовать другой день в качестве первого дня недели, установите для элемента first_week_day следующее значение:

  • 0 для понедельника
  • 1 для вторника
  • 2 для среды
  • 3 для четверга
  • 4 для пятницы
  • 5 для субботы
  • 6 для воскресенья

Целое число, возвращенное этой функцией, теперь будет использовать первый день недели, заданный параметром first_week_day.

FirstWeekDay

Если параметр broken_weeks не указан, значение переменной BrokenWeeks будет использовано для определения, какими должны быть недели: целыми или разбитыми.

По умолчанию в функциях Qlik Sense используются целые недели. Это означает следующее:

  • В одних годах 1-я неделя начинается в декабре, а в других годах 52-я или 53-я неделя заканчивается в январе.
  • В 1-ой неделе всегда не менее четырех дней в январе.

В качестве альтернативы можно использовать разбиение недель.

  • 52-я или 53-я неделя не будет продолжена в январе следующего года.
  • 1-я неделя будет начинаться 1 января и в большинстве случаев она будет неполной.

Могут использоваться следующие значения:

  • 0 (= использовать целые недели)
  • 1 (= использовать разбитые недели)

BrokenWeeks

Если параметр reference_day не указан, значение переменной ReferenceDay будет использовано для определения, какой день в январе должен быть задан в качестве дня ссылки, чтобы определить неделю 1. По умолчанию в функциях Qlik Sense используется 4 как день ссылки. Это значит, что неделя 1 должна содержать значение «январь 4» , или, другими словами, в неделе 1 всегда должно быть не меньше 4 дней в январе.

Используйте следующие значения, чтобы задать день ссылки:

  • 1 (= январь 1)
  • 2 (= январь 2)
  • 3 (= январь 3)
  • 4 (= январь 4)
  • 5 (= январь 5)
  • 6 (= январь 6)
  • 7 (= январь 7)

ReferenceDay

Когда это следует использовать

Функция The week() полезна, когда требуется сравнить агрегирования по неделям. Например, ее можно использовать, если требуется увидеть общий объем продаж продуктов по неделям. Функции week() отдается предпочтение перед weekname(), когда пользователю требуется, чтобы в вычислении не всегда использовались системные переменные приложения: BrokenWeeks, FirstWeekDay или ReferenceDay.

Кроме того, функция week() выбирается, когда требуется выполнить сравнение данных за несколько лет. С помощью функции week() пользователь может создать собственную комбинацию этих переменных для использования в ситуациях, когда применяется эта функция.

Эти измерения можно либо создать в скрипте загрузки, используя функцию для создания поля в таблице основного календаря, либо использовать непосредственно в диаграмме в качестве вычисляемого измерения.

Примеры функции
Пример Результат

week( '10/12/2012')

Возвращает 41.

week( '35648') Возвращает 32, так как 35 648 = 08/06/1997.
week('10/12/2012', 0, 1) Возвращает 42.

Региональные настройки

Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: ММ/ДД/ГГГГ. Формат даты указан в операторе SET DateFormat скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами.

Региональные настройки по умолчанию в приложениях основаны на системных региональных настройках компьютера или сервера, где установлено ПО Qlik Sense. Если на сервере Qlik Sense, к которому обращается пользователь, выбран шведский язык, то редактор загрузки данных будет использовать шведские региональные настройки для даты, времени и валюты. Эти параметры регионального формата не связаны с языком, отображаемым в интерфейсе пользователя Qlik Sense. Qlik Sense будет отображаться на языке, который используется в браузере.

Пример 1. Системные переменные по умолчанию

Пример 2. Аргумент first_week_day

Пример 3. Аргумент unbroken_weeks

Пример 4. Аргумент reference_day

Пример 5. Пример объекта диаграммы

Пример 6. Сценарий

Помогла ли вам эта страница?

Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!