Эта функция возвращает дату, рассчитанную в формате год YYYY, неделя WW и день недели D.
Синтаксис:
MakeWeekDate(YYYY [ , WW [ , D ] ])
Возвращаемые типы данных: двойное значение
Функция makeweekdate() доступна как функция скрипта и как функция диаграммы. Функция вычислит дату на основе переданных ей параметров. Если параметр дня недели опускается, функция возвращает дату понедельника этой недели.
Функция makeweekdate() не учитывает системные переменные BrokenWeek, ReferenceDay или FirstWeekDay. Неделя 1 начинается в первый понедельник января. Например, в 2022 году неделя 1 начинается 3 января.
Аргументы
Аргумент
Описание
YYYY
Год — целое число.
WW
Неделя — целое число.
Неделя может иметь положительное или отрицательное значение, можно задать значение больше 52, чтобы возвращать даты другого года.
D
День недели — целое число.
Если день недели не задан, используется 0 (понедельник). Остальные дни недели назначаются следующим образом: 1 — вторник, 2 — среда, 3 — четверг, 4 — пятница, 5 — суббота и 6 — воскресенье.
Когда это следует использовать
Функция makeweekdate() обычно используется в скрипте для создания данных с целью формирования списка дат или вычисления дат, когда год, неделя и день недели предоставляются во входных данных.
Примеры функции
Пример
Результат
makeweekdate(2014,6,6)
возвращает 02/09/2014
makeweekdate(2014,6,1)
возвращает02/04/2014
makeweekdate(2014,6)
возвращает 02/03/2014 (для недели допускается значение 0)
Региональные настройки
Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: ММ/ДД/ГГГГ. Формат даты указан в операторе SET DateFormat скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами.
Региональные настройки по умолчанию в приложениях основаны на системных региональных настройках компьютера или сервера, где установлено ПО Qlik Sense. Если на сервере Qlik Sense, к которому обращается пользователь, выбран шведский язык, то редактор загрузки данных будет использовать шведские региональные настройки для даты, времени и валюты. Эти параметры регионального формата не связаны с языком, отображаемым в интерфейсе пользователя Qlik Sense. Qlik Sense будет отображаться на языке, который используется в браузере.
Пример 1. День указан
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий еженедельные общие продажи за 2022 год, в таблице под именем Sales.
Даты транзакций, предоставленные в виде трех полей: year, week и sales.
Предыдущая загрузка, используемая для создания меры end_of_week с помощью функции makeweekdate(), которая возвращает дату для пятницы этой недели в формате MM/DD/YYYY.
Чтобы подтвердить, что возвращаемая дата выпадает на пятницу, в функцию weekday() также помещается выражение end_of_week, которое отображает день недели.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
transaction_year
transaction_week
end_of_week
week_day
Результирующая таблица
transaction_year
transaction_week
end_of_week
week_day
2022
01
01/07/2022
Fri
2022
02
01/14/2022
Fri
2022
03
01/21/2022
Fri
2022
04
01/28/2022
Fri
2022
05
02/04/2022
Fri
2022
06
02/11/2022
Fri
2022
07
02/18/2022
Fri
Поле end_of_week создано в предыдущем операторе load с помощью функции makeweekdate(). Поля transaction_year, transaction_week передаются функции в качестве аргументов года и недели. В качестве аргумента дня используется значение 4.
Затем функция объединяет и преобразует эти значения в поле даты, возвращая результаты в формате системной переменной DateFormat.
Функция makeweekdate() и ее аргументы также помещаются в функцию weekday() с целью возвращения поля week_day. Как показано в таблице выше, поле week_day показывает, что эти даты выпадают на пятницу.
Пример 2. День не указан
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий еженедельные продажи за 2022 год, в таблице под именем Sales.
Даты транзакций, предоставленные в виде трех полей: year, week и sales.
Предыдущая загрузка, которая используется для создания меры first_day_of_week с помощью функции makeweekdate(). Будет возвращена дата для понедельника этой недели в формате MM/DD/YYYY.
Чтобы подтвердить, что возвращаемая дата выпадает на понедельник, в функцию weekday() также помещается выражение first_day_of_week, которое отображает день недели.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
transaction_year
transaction_week
first_day_of_week
week_day
Результирующая таблица
transaction_year
transaction_week
first_day_of_week
week_day
2022
01
01/03/2022
Mon
2022
02
01/10/2022
Mon
2022
03
01/17/2022
Mon
2022
04
01/24/2022
Mon
2022
05
01/31/2022
Mon
2022
06
02/07/2022
Mon
2022
07
02/14/2022
Mon
Поле first_day_of_week создано в предыдущем операторе load с помощью функции makeweekdate(). Параметры transaction_year и transaction_week передаются в качестве аргументов функции, а параметр day остается пустым.
Затем функция объединяет и преобразует эти значения в поле даты, возвращая результаты в формате системной переменной DateFormat.
Функция makeweekdate() и ее аргументы также помещаются в функцию weekday(), в результате чего возвращается поле week_day. Как видно по таблице выше, поле week_day показывает, что эти данные выпадают на понедельник (хота переменная FirstWeekDay задает воскресенье в качестве первого дня недели), так как параметр day в функции makeweekdate() оставлен пустым.
Пример 3. Пример объекта диаграммы
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий еженедельные продажи за 2022 год, в таблице под именем Sales.
Даты транзакций, предоставленные в виде трех полей: year, week и sales.
В этом примере объект диаграммы используется для создания меры, эквивалентной вычислению end_of_week из первого примера. Эта мера будет использовать функцию makeweekdate(), чтобы вернуть дату для пятницы этой недели в формате MM/DD/YYYY.
Для подтверждения того, что возвращаемая дата выпадает на пятницу, создается вторая мера, которая возвращает день недели.
Поле, эквивалентное полю end_of_week, создается как мера в объекте диаграммы с помощью функции makeweekdate(). Поля transaction_year и transaction_week передаются функции в качестве аргументов года и недели. В качестве аргумента дня используется значение 4.
Затем функция объединяет и преобразует эти значения в поле даты, возвращая результаты в формате системной переменной DateFormat.
Функция makeweekdate() и ее аргументы также помещаются в функцию weekday(), в результате чего возвращается вычисление, эквивалентное вычислению поля week_day из первого примера. Как видно по таблице выше, в последнем столбце справа показано, что эти даты выпадают на пятницу.
Пример 4. Сценарий
Обзор
В этом примере создайте список дат, содержащий все пятницы в 2022 году.
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки
SET DateFormat='MM/DD/YYYY';
Calendar:
load
*,
weekday(date) as weekday
where year(date)=2022;
load
makeweekdate(2022,recno()-2,4) as date
AutoGenerate 60;
Результаты
Результирующая таблица
date
weekday
01/07/2022
Fri
01/14/2022
Fri
01/21/2022
Fri
01/28/2022
Fri
02/04/2022
Fri
02/11/2022
Fri
02/18/2022
Fri
02/25/2022
Fri
03/04/2022
Fri
03/11/2022
Fri
03/18/2022
Fri
03/25/2022
Fri
04/01/2022
Fri
04/08/2022
Fri
04/15/2022
Fri
04/22/2022
Fri
04/29/2022
Fri
05/06/2022
Fri
05/13/2022
Fri
05/20/2022
Fri
05/27/2022
Fri
06/03/2022
Fri
06/10/2022
Fri
06/17/2022
Fri
+ 27 строк
Функция makeweekdate() находит все пятницы в 2022 году. Использование параметра week = -2 позволяет предотвратить пропуски дат. В заключение предыдущая загрузка создает дополнительное поле weekday для уточнения, что каждое значение date попадает на пятницу.
Помогла ли вам эта страница?
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!