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

Эта функция возвращает двойное значение со следующим:

* Имя дня, как определено переменной окружения DayNames.
* Целое от 0 до 6, соответствующее номинальному дню недели (0–6).

Синтаксис:

weekday(date [,first\_week\_day=0])

Возвращаемые типы данных: двойное значение

Функция `weekday()` определяет, на какой день недели выпадает дата. Затем она возвращает строковое значение, представляющее этот день.

Диаграмма функции `weekday()`, возвращающей название дня недели, на который выпадает дата

Диаграмма функции `weekday()`, возвращающей название дня недели, на который выпадает дата

Диаграмма функции `weekday()`weekday(), возвращающей название дня недели, на который выпадает дата ![Диаграмма, демонстрирующая, как функция weekday() возвращает название дня недели, на который выпадает дата.](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekday-diagram1.png)

Результат возвращает значение, соответствующее дню недели (0-6), в зависимости от первого дня недели. Например, если в качестве первого дня недели задано воскресенье, то для среды будет возвращаться значение `3`. Этот день начала недели определяется системной переменной `FirstWeekDay` или параметром функции `first_week_day`.

Это числовое значение можно использовать как часть арифметического выражения. Например, умножьте его на `1` для возвращения самого значения.

Диаграмма функции `weekday()` с числовым значением дня, которое отображается вместо названия дня

Диаграмма функции `weekday()` с числовым значением дня, которое отображается вместо названия дня

Диаграмма функции `weekday()`weekday() с числовым значением дня, которое отображается вместо названия дня ![Диаграмма, демонстрирующая, что функция weekday() может возвращать числовое значение, соответствующее идентифицированному дню недели.](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekday-diagram2.png)

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

Функция `weekday()` полезна, когда требуется сравнить агрегирования по дням недели, например, если требуется сравнить средние продажи продуктов по дням недели.

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

Связанные темы

| Темы | Взаимодействие |
| --- | --- |
| [FirstWeekDay](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/FirstWeekDay.htm) | Определяет день начала каждой недели. |

| <ul> </ul> |
| --- |

Аргументы

| Аргумент | Описание |
| --- | --- |
| date | Дата или метка времени для вычисления. |
| first\_week\_day | Указывает день начала недели. Если не указано, используется значение переменной FirstWeekDay.<br><br>[FirstWeekDay](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/FirstWeekDay.htm) |

Можно использовать следующие значения, чтобы задать первый день недели в аргументе `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.<br><br>В этом примере мы используем воскресенье (`6`) в качестве первого дня недели. |
| `SET FirstWeekDay=6;`<br><br>`...`<br><br>`weekday('10/12/1971')` | Возвращает Tue (вторник) и 2. |

## Пример 1. Строка с названием дня недели

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekday.htm)

#### Скрипт загрузки и результаты

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, содержащий набор транзакций за 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`.

Диаграмма функции `weekday()`, которая возвращает среду в качестве дня недели для транзакции 8192

Диаграмма функции `weekday()`, которая возвращает среду в качестве дня недели для транзакции 8192

Диаграмма функции `weekday()`weekday(), которая возвращает среду в качестве дня недели для транзакции 8192 ![Диаграмма, демонстрирующая функцию weekday(), которая возвращает среду в качестве дня недели для транзакции 8192.](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekday-examples1_and3-diagram.png)

Транзакция 8192 совершена 5 января. Системная переменная `FirstWeekDay` задает в качестве первого дня недели воскресенье. Функция `weekday()` определяет, что транзакция совершена в среду, и возвращает это значение как сокращенную форму системной переменной `DayNames` в поле `week_day`.

Значения в поле `week_day` выравниваются по правому краю столбца, так как это двойной текстово-числовой результат для поля (Wednesday, 3). Чтобы преобразовать значение поля в числовой эквивалент, можно поместить поле в функцию `num()`. Например, в транзакции 8192 значение Wednesday (среда) можно преобразовать в число 3.

## Пример 2. Аргумент first\_week\_day

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekday.htm)

#### Скрипт загрузки и результаты

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, содержащий набор транзакций за 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 |

Диаграмма функции `weekday()`, которая показывает, что для среды предусмотрено двойное числовое значение 1

Диаграмма функции `weekday()`, которая показывает, что для среды предусмотрено двойное числовое значение 1

Диаграмма функции `weekday()`weekday(), которая показывает, что для среды предусмотрено двойное числовое значение 1 ![Диаграмма, демонстрирующая, что 5 января 2022 года выпадает на среду и что среде соответствует числовое значение 1, так как первым днем недели назначен вторник.](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekday-example2-diagram.png)

Поскольку используется аргумент `first_week_day` = `1` в функции `weekday()`, первым днем недели является вторник. Таким образом, все транзакции, совершенные во вторник, имеют двойное числовое значение `0`.

Транзакция 8192 совершена 5 января. Функция `weekday()` определяет, что эта дата выпадает на среду, поэтому выражение возвращает двойное числовое значение `1`.

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

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekday.htm)

#### Скрипт загрузки и выражение диаграммы

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, содержащий набор транзакций за 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`.

Диаграмма функции `weekday()`, которая возвращает среду в качестве дня недели для транзакции 8192

Диаграмма функции `weekday()`, которая возвращает среду в качестве дня недели для транзакции 8192

Диаграмма функции `weekday()`weekday(), которая возвращает среду в качестве дня недели для транзакции 8192 ![Диаграмма, демонстрирующая функцию weekday(), которая возвращает среду в качестве дня недели для транзакции 8192.](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekday-examples1_and3-diagram.png)

Транзакция 8192 совершена 5 января. Системная переменная `FirstWeekDay` задает в качестве первого дня недели воскресенье. Функция `weekday()` определяет, что транзакция совершена в среду, и возвращает это значение как сокращенную форму системной переменной `DayNames` в поле `=weekday(date)`.

## Пример 4. Сценарий

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/weekday.htm)

#### Скрипт загрузки и результаты

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, содержащий набор транзакций за 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 |