Эта переменная среды определяет формат даты, используемый по умолчанию в приложении, а также используемый функциями возврата даты, такими как date() и date#(). Формат используется для интерпретации и форматирования дат. Если переменная не определена, при выполнении скрипта извлекается формат даты, заданный региональными настройками.
Синтаксис:
DateFormat
Примеры функции DateFormat
Пример
Результат
Set DateFormat='M/D/YY'; //(US format)
Это использование функции DateFormat определяет дату в формате США — «месяц/дата/год».
Set DateFormat='DD/MM/YY'; //(UK date format)
Это использование функции DateFormat определяет дату в формате Соединенного Королевства — «дата/месяц/год».
Set DateFormat='YYYY/MM/DD'; //(ISO date format)
Это использование функции DateFormat определяет дату в формате ISO — «год/месяц/дата».
Региональные настройки
Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: ММ/ДД/ГГГГ. Формат даты указан в операторе SET DateFormat скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами.
Региональные настройки по умолчанию в приложениях основаны на системных региональных настройках компьютера или сервера, где установлено ПО Qlik Sense. Если на сервере Qlik Sense, к которому обращается пользователь, выбран шведский язык, то редактор загрузки данных будет использовать шведские региональные настройки для даты, времени и валюты. Эти параметры регионального формата не связаны с языком, отображаемым в интерфейсе пользователя Qlik Sense. Qlik Sense будет отображаться на языке, который используется в браузере.
Пример 1. Системные переменные по умолчанию
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных с датами.
Функция DateFormat, которая будет использовать формат даты США.
В этом примере набор данных загружается в таблицу под именем Transactions. Она включает поле date. Используется определение DateFormat США. Этот шаблон будет использоваться для неявного преобразования текста в дату при загрузке текстовых дат.
Скрипт загрузки
Set DateFormat='MM/DD/YYYY';
Transactions:
LOAD
date,
month(date) as month,
id,
amount
INLINE
[
date,id,amount
01/01/2022,1,1000
02/01/2022,2,2123
03/01/2022,3,4124
04/01/2022,4,2431
];
Результаты
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
date
month
Создайте эту меру:
=sum(amount)
Результирующая таблица
date
month
=sum(amount)
01/01/2022
Jan
1000
02/01/2022
Feb
2123
03/01/2022
Mar
4124
04/01/2022
Apr
2431
Определение DateFormat MM/DD/YYYY используется для неявного преобразования текста в даты. Именно поэтому поле date правильно интерпретируется как дата. Тот же формат используется для отображения даты, как показано в результатах таблицы.
Пример 2. Изменение системной переменной
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Тот же набор данных из предыдущего примера.
Функция DateFormat, которая будет использовать формат DD/MM/YYYY.
Скрипт загрузки
SET DateFormat='DD/MM/YYYY';
Transactions:
LOAD
date,
month(date) as month,
id,
amount
INLINE
[
date,id,amount
01/01/2022,1,1000
02/01/2022,2,2123
03/01/2022,3,4124
04/01/2022,4,2431
];
Результаты
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
date
month
Создайте эту меру:
=sum(amount)
Результирующая таблица
date
month
=sum(amount)
01/01/2022
Jan
1000
02/01/2022
Jan
2123
03/01/2022
Jan
4124
04/01/2022
Jan
2431
Так как для DateFormat задано определение DD/MM/YYYY, мы видим, что две цифры после первой косой черты (/) интерпретированы как месяц, таким образом, все записи относятся к январю.
Пример 3. Интерпретация данных
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных с датами в числовом формате.
Переменная DateFormat, которая будет использовать формат DD/MM/YYYY.
Переменная date().
Скрипт загрузки
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
date(numerical_date),
month(date(numerical_date)) as month,
id,
amount
Inline
[
numerical_date,id,amount
43254,1,1000
43255,2,2123
43256,3,4124
43258,4,2431
];
Результаты
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
date
month
Создайте эту меру:
=sum(amount)
Результирующая таблица
date
month
=sum(amount)
06/03/2022
Jun
1000
06/04/2022
Jun
2123
06/05/2022
Jun
4124
06/07/2022
Jun
2431
В скрипте загрузки используется функция date() для преобразования числовой даты в формат даты. Так как не предоставлен определенный формат для второго аргумента функции, используется DateFormat. В результате этого для поля даты используется формат MM/DD/YYYY.
Пример 4. Иностранный формат даты
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных с датами.
Переменная DateFormat, которая использует формат DD/MM/YYYY, но раскомментирована косой чертой.
Скрипт загрузки
// SET DateFormat='DD/MM/YYYY';
Transactions:
Load
date,
month(date) as month,
id,
amount
Inline
[
date,id,amount
22-05-2022,1,1000
23-05-2022,2,2123
24-05-2022,3,4124
25-05-2022,4,2431
];
Результаты
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
date
month
Создайте эту меру:
=sum(amount)
Результирующая таблица
date
month
=sum(amount)
22-05-2022
-
1000
23-05-2022
-
2123
24-05-2022
-
4124
25-05-2022
-
2431
В начальном скрипте загрузки для DateFormat по умолчанию используется MM/DD/YYYY. Так как поле date в наборе данных transactions имеет другой формат, оно не интерпретируется как дата. Это видно в таблице результатов, где в поле month отображаются значения null.
Можно проверить интерпретируемые типы данных в окне просмотра модели данных: обратите внимание на свойства Tags поля date:
Это можно решить, включив системную переменную DateFormat:
// SET DateFormat='DD/MM/YYYY';
Удалите двойную косую черту и перезагрузите данные.
Помогла ли вам эта страница?
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!