Эта функция возвращает двойное значение со следующим:
Имя дня, как определено переменной окружения DayNames.
Целое от 0 до 6, соответствующее номинальному дню недели (0–6).
Синтаксис:
weekday(date [,first_week_day=0])
Возвращаемые типы данных: двойное значение
Функция weekday() определяет, на какой день недели выпадает дата. Затем она возвращает строковое значение, представляющее этот день.
Результат возвращает значение, соответствующее дню недели (0-6), в зависимости от первого дня недели. Например, если в качестве первого дня недели задано воскресенье, то для среды будет возвращаться значение 3. Этот день начала недели определяется системной переменной FirstWeekDay или параметром функции first_week_day.
Это числовое значение можно использовать в составе арифметического выражения. Например, его можно умножить на 1, чтобы вернуть само значение.
Когда это следует использовать
Функция weekday() полезна, когда требуется сравнить агрегирования по дням недели, например, если требуется сравнить средние продажи продуктов по дням недели.
Эти измерения можно создать в скрипте загрузки, используя функцию для создания поля в таблице основного календаря, или непосредственно в диаграмме в качестве вычисляемого измерения.
Можно использовать следующие значения, чтобы задать первый день недели в аргументе first_week_day:
значения first_week_day
День
Значение
Понедельник
0
Вторник
1
Среда
2
Четверг
3
Пятница
4
Суббота
5
Воскресенье
6
Региональные настройки
Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: ММ/ДД/ГГГГ. Формат даты указан в операторе SET DateFormat скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами.
Региональные настройки по умолчанию в приложениях основаны на системных региональных настройках компьютера или сервера, где установлено ПО Qlik Sense. Если на сервере Qlik Sense, к которому обращается пользователь, выбран шведский язык, то редактор загрузки данных будет использовать шведские региональные настройки для даты, времени и валюты. Эти параметры регионального формата не связаны с языком, отображаемым в интерфейсе пользователя Qlik Sense. Qlik Sense будет отображаться на языке, который используется в браузере.
Примечание к информацииЕсли не указано иначе, в этих примерах для элемента FirstWeekDay установлено значение 0.
Примеры функции
Пример
Результат
weekday('10/12/1971')
Возвращает Tue (вторник) и 1.
weekday('10/12/1971' , 6)
Возвращает Tue (вторник) и 2.
В этом примере мы используем воскресенье (6) в качестве первого дня недели.
SET FirstWeekDay=6;
...
weekday('10/12/1971')
Возвращает Tue (вторник) и 2.
Пример 1. Строка с названием дня недели
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий набор транзакций за 2022 год, загружаемый в таблицу под именем Transactions.
Системная переменная FirstWeekDay, для которой задано значение 6 (воскресенье).
Переменная DayNames, настроенная для использования названий дней недели по умолчанию.
Предшествующая загрузка, содержащая функцию weekday(), которая настроена как поле week_day и возвращает день недели, когда совершены транзакции.
Скрипт загрузки
SET DateFormat='MM/DD/YYYY';
SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun';
SET FirstWeekDay=6;
Transactions:
Load
*,
WeekDay(date) as week_day
;
Load
*
Inline
[
id,date,amount
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.39
];
Результаты
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
id
date
week_day
Результирующая таблица
id
date
week_day
8188
01/01/2022
Sat
8189
01/02/2022
Sun
8190
01/03/2022
Mon
8191
01/04/2022
Tue
8192
01/05/2022
Wed
8193
01/06/2022
Thu
8194
01/07/2022
Fri
Поле week_day создано предшествующим оператором load с использованием функции weekday(), где в качестве аргумента функции передано поле даты.
Функция weekday() возвращает строковое значение дня недели; другими словами, она возвращает название дня недели, заданное системной переменной DayNames.
Транзакция 8192 совершена 5 января. Системная переменная FirstWeekDay задает в качестве первого дня недели воскресенье. Функция weekday() определяет, что транзакция совершена в среду, и возвращает это значение как сокращенную форму системной переменной DayNames в поле week_day.
Значения в поле week_day выравниваются по правому краю столбца, так как это двойной текстово-числовой результат для поля (Wednesday, 3). Чтобы преобразовать значение поля в числовой эквивалент, можно поместить поле в функцию num(). Например, в транзакции 8192 значение Wednesday (среда) можно преобразовать в число 3.
Пример 2. Аргумент first_week_day
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий набор транзакций за 2022 год, загружаемый в таблицу под именем Transactions.
Системная переменная FirstWeekDay, для которой задано значение 6 (воскресенье).
Переменная DayNames, настроенная для использования названий дней недели по умолчанию.
Предшествующая загрузка, содержащая функцию weekday(), которая настроена как поле week_day и возвращает день недели, когда совершены транзакции.
Скрипт загрузки
SET DateFormat='MM/DD/YYYY';
SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun';
SET FirstWeekDay=6;
Transactions:
Load
*,
WeekDay(date,1) as week_day
;
Load
*
Inline
[
id,date,amount
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.39
];
Результаты
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
id
date
week_day
Результирующая таблица
id
date
week_day
8188
01/01/2022
Sat
8189
01/02/2022
Sun
8190
01/03/2022
Mon
8191
01/04/2022
Tue
8192
01/05/2022
Wed
8193
01/06/2022
Thu
8194
01/07/2022
Fri
Поскольку используется аргумент first_week_day = 1 в функции weekday(), первым днем недели является вторник. Таким образом, все транзакции, совершенные во вторник, имеют двойное числовое значение 0.
Транзакция 8192 совершена 5 января. Функция weekday() определяет, что эта дата выпадает на среду, поэтому выражение возвращает двойное числовое значение 1.
Пример 3. Пример объекта диаграммы
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий набор транзакций за 2022 год, загружаемый в таблицу под именем Transactions.
Системная переменная FirstWeekDay, для которой задано значение 6 (воскресенье).
Переменная DayNames, настроенная для использования названий дней недели по умолчанию.
Однако в этом примере в приложение загружается неизмененный набор данных. Расчет, который определяет день недели, создается как мера в диаграмме приложения.
Скрипт загрузки
SET DateFormat='MM/DD/YYYY';
SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun';
SET FirstWeekDay=6;
Transactions:
Load
*
Inline
[
id,date,amount
8188,01/01/2022,37.23
8189,01/02/2022,17.17
8190,01/03/2022,88.27
8191,01/04/2022,57.42
8192,01/05/2022,53.80
8193,01/06/2022,82.06
8194,01/07/2022,40.39
];
Результаты
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
id
date
Чтобы рассчитать значение дня недели, создайте следующую меру:
=weekday(date)
Результирующая таблица
id
date
=weekday(date)
8188
01/01/2022
Sat
8189
01/02/2022
Sun
8190
01/03/2022
Mon
8191
01/04/2022
Tue
8192
01/05/2022
Wed
8193
01/06/2022
Thu
8194
01/07/2022
Fri
Поле =weekday(date) создано в диаграмме с использованием функции weekday(), где в качестве аргумента функции передано поле даты.
Функция weekday() возвращает строковое значение дня недели; другими словами, она возвращает название дня недели, заданное системной переменной DayNames.
Транзакция 8192 совершена 5 января. Системная переменная FirstWeekDay задает в качестве первого дня недели воскресенье. Функция weekday() определяет, что транзакция совершена в среду, и возвращает это значение как сокращенную форму системной переменной DayNames в поле =weekday(date).
Пример 4. Сценарий
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий набор транзакций за 2022 год, загружаемый в таблицу под именем Transactions.
Системная переменная FirstWeekDay, для которой задано значение 6 (воскресенье).
Переменная DayNames, настроенная для использования названий дней недели по умолчанию.
Конечному пользователю нужна диаграмма, на которой представлены средние продажи для транзакций по дням недели.
Скрипт загрузки
SET DateFormat='MM/DD/YYYY';
SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun';
SET FirstWeekDay=6;
Transactions:
LOAD
RecNo() AS id,
MakeDate(2022, 1, Ceil(Rand() * 31)) as date,
Rand() * 1000 AS amount
Autogenerate(1000);
Результаты
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
=weekday(date)
=avg(amount)
Задайте параметру Формат чисел меры значение Денежный.
Результирующая таблица
weekday(date)
Avg(amount)
Sun
$536.96
Mon
$500.80
Tue
$515.63
Wed
$509.21
Thu
$482.70
Fri
$441.33
Sat
$505.22
Помогла ли вам эта страница?
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!