Эта функция возвращает дату, рассчитанную в формате год YYYY, месяц MM и день DD.
Синтаксис:
MakeDate(YYYY [ , MM [ , DD ] ])
Возвращаемые типы данных: двойное значение
Аргументы
Аргумент
Описание
YYYY
Год — целое число.
MM
Месяц — целое число. Если месяц не задан, используется 1 (январь).
DD
День — целое число. Если день не задан, используется 1 (1-е число).
Когда это следует использовать
Функция makedate() обычно используется в скриптах для создания данных с целью формирования календаря. Это также полезно, когда поле даты недоступно напрямую в виде даты и требуется выполнить преобразования для извлечения компонентов года, месяца и даты.
В этих примерах используется формат даты MM/DD/YYYY. Формат даты указан в операторе SET DateFormat в верхней части скрипта загрузки данных. Измените формат в примерах согласно своим пожеланиям.
Примеры функции
Пример
Результат
makedate(2012)
Возвращает 01/01/2012.
makedate(12)
Возвращает 01/01/2012.
makedate(2012,12)
Возвращает 12/01/2012.
makedate(2012,2,14)
Возвращает 02/14/2012.
Региональные настройки
Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: ММ/ДД/ГГГГ. Формат даты указан в операторе SET DateFormat скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами. Для получения дополнительной информации см. Изменение региональных настроек для создания приложений и скриптов.
Региональные настройки по умолчанию в приложениях основаны на профиле пользователя. Эти параметры регионального формата не связаны с языком, отображаемым в интерфейсе пользователя Qlik Cloud. Qlik Cloud будет отображаться на языке, который используется в браузере.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
transaction_year
transaction_month
transaction_day
transaction_date
Результирующая таблица
transaction_year
transaction_month
transaction_day
transaction_date
2018
08
30
08/30/2018
2018
09
07
09/07/2018
2018
09
16
09/16/2018
2018
09
22
09/22/2018
2018
09
23
09/23/2018
Поле transaction_date создано предшествующим оператором load с использованием функции makedate(), где в качестве аргумента функции переданы поля года, месяца и даты.
Затем функция объединяет и преобразует эти значения в поле даты, возвращая результаты в формате системной переменной DateFormat.
Пример 2. Измененная переменная DateFormat
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Используется тот же набор данных и сценарий, что в первом примере.
Создание поля transaction_date в формате DD/MM/YYYY без изменения системной переменной DateFormat.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
transaction_year
transaction_month
transaction_day
transaction_date
Результирующая таблица
transaction_year
transaction_month
transaction_day
transaction_date
2018
08
30
30/08/2018
2018
09
07
07/09/2018
2018
09
16
16/09/2018
2018
09
22
22/09/2018
2018
09
23
23/09/2018
В этом примере функция makedate() вложена в функцию date(). Второй аргумент функции date() задает формат для результатов функции makedate() — DD/MM/YYYY.
Пример 3. Пример объекта диаграммы
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий набор транзакций за 2018 год, который загружается в таблицу под именем Transactions.
Даты транзакций, предоставленные в виде двух полей: year и month.
Создайте меру объекта transaction_date, которая возвращает дату в формате MM/DD/YYYY.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
year
month
Чтобы определить transaction_date, создайте эту меру:
=makedate(transaction_year,transaction_month)
Результирующая таблица
transaction_year
transaction_month
transaction_date
2018
08
08/01/2018
2018
09
09/01/2018
Мера transaction_date создана в объекте диаграммы с использованием функции makedate(), где в качестве аргументов функции переданы поля года и месяца.
Затем функция объединяет эти значения, а также добавляет предполагаемое значение дня 01. Затем эти значения преобразуются в поле даты, а результаты возвращаются в формате системной переменной DateFormat.
Пример 4. Сценарий
Обзор
Создайте набор данных календаря для календарного года 2022.
Скрипт загрузки
SET DateFormat='MM/DD/YYYY';
Calendar:
load
*
where year(date)=2022;
load
date(recno()+makedate(2021,12,31)) as date
AutoGenerate 400;
Результаты
Результирующая таблица
date
01/01/2022
01/02/2022
01/03/2022
01/04/2022
01/05/2022
01/06/2022
01/07/2022
01/08/2022
01/09/2022
01/10/2022
01/11/2022
01/12/2022
01/13/2022
01/14/2022
01/15/2022
01/16/2022
01/17/2022
01/18/2022
01/19/2022
01/20/2022
01/21/2022
01/22/2022
01/23/2022
01/24/2022
01/25/2022
+ 340 строк
Функция makedate() создает значение даты для 31 декабря 2021 года. Функция recno() предоставляет номер для текущей записи, загружаемой в таблицу, начиная от 1. Таким образом первая запись имеет дату 1 января 2022 года. Каждый последующий recno() будет увеличивать дату на 1. Это выражение помещается в функцию date() для преобразования значения в дату. Функция autogenerate повторяет этот процесс 400 раз. В завершение, с помощью предыдущей загрузки можно использовать условие where, чтобы загрузить даты только из 2022 года. Этот скрипт создает календарь, содержащий все даты 2022 года.
Помогла ли вам эта страница?
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!