Функция inday() использует аргумент base_timestamp для идентификации дня, на который выпадает метка времени. Временем начала дня по умолчанию является полночь, но его можно изменить с помощью аргумента day_start функции inday(). Когда этот день определен, функция будет возвращать логические результаты при сравнении предварительно заданных значений метки времени с этим днем.
Когда это следует использовать
Функция inday() возвращает результат в виде булева значения. Обычно этот тип функции используется в качестве условия в if expression. Она возвращает агрегирование или расчет в зависимости от того, совпадает ли проверяемая дата с днем рассматриваемой метки времени.
Например, функцию inday() можно использовать для идентификации всего оборудования, изготовленного в указанный день.
Возвращаемые типы данных: Булево значение
В Qlik Sense логическое значение «истина» представлено как -1, а «ложь» — как 0.
Аргументы
Аргумент
Описание
timestamp
Дата и время, которые требуется сравнить с base_timestamp.
base_timestamp
Дата и время, использующиеся для оценки метки времени.
period_no
День можно сместить, задав значение в поле period_no. period_no — целое число, где 0 обозначает день, включающий значение, указанное в поле base_timestamp. Отрицательные значения, заданные в поле period_no, означают предшествующие дни, положительные — последующие.
day_start
Если необходимо работать с днями, которые начинаются не в полночь, задайте смещение в виде десятичного значения в поле day_start, например, 0,125, чтобы день начинался в 3 часа (3 am).
Региональные настройки
Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: ММ/ДД/ГГГГ. Формат даты указан в операторе SET DateFormat скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами.
Региональные настройки по умолчанию в приложениях основаны на системных региональных настройках компьютера или сервера, где установлено ПО Qlik Sense. Если на сервере Qlik Sense, к которому обращается пользователь, выбран шведский язык, то редактор загрузки данных будет использовать шведские региональные настройки для даты, времени и валюты. Эти параметры регионального формата не связаны с языком, отображаемым в интерфейсе пользователя Qlik Sense. Qlik Sense будет отображаться на языке, который используется в браузере.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
date
in_day
Результирующая таблица
date
in_day
01/01/2022 7:34:46 PM
0
01/01/2022 10:10:22 PM
0
01/02/2022 8:35:54 AM
0
01/03/2022 2:21:53 PM
0
01/04/2022 6:49:38 PM
0
01/04/2022 10:58:34 PM
0
01/05/2022 5:40:49 AM
-1
01/05/2022 11:29:38 AM
-1
01/05/2022 7:04:57 PM
-1
01/06/2022 8:49:09 AM
0
Поле in_day создано предшествующим оператором load с использованием функции inday(), где в качестве аргументов функции переданы поле даты, жестко запрограммированная метка времени 5 января и period_no = 0.
Пример 2. Скрипт period_no
Обзор
В скрипте загрузки используются те же набор данных и сценарий, что и в первом примере.
Однако в этом примере стоит задача рассчитать, произошла ли транзакция за два дня до 5 января.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
date
in_day
Результирующая таблица
date
in_day
01/01/2022 7:34:46 PM
0
01/01/2022 10:10:22 PM
0
01/02/2022 8:35:54 AM
0
01/03/2022 2:21:53 PM
-1
01/04/2022 6:49:38 PM
0
01/04/2022 10:58:34 PM
0
01/05/2022 5:40:49 AM
0
01/05/2022 11:29:38 AM
0
01/05/2022 7:04:57 PM
0
01/06/2022 8:49:09 AM
0
В этом примере в качестве аргумента смещения в функции inday() использовалось значение period_no = -2, поэтому функция определяет, произошла ли транзакция 3 января. Это можно проверить в таблице выходных данных, где одна транзакция возвращает результат в виде логического значения «ИСТИНА».
Пример 3. Скрипт day_start
Обзор
В скрипте загрузки используются те же набор данных и сценарий, что и в предыдущих примерах.
Однако в этом примере используется политика компании, согласно которой рабочий день начинается и заканчивается в 7:00 утра.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
date
in_day
Результирующая таблица
date
in_day
01/01/2022 7:34:46 PM
0
01/01/2022 10:10:22 PM
0
01/02/2022 8:35:54 AM
0
01/03/2022 2:21:53 PM
0
01/04/2022 6:49:38 PM
-1
01/04/2022 10:58:34 PM
-1
01/05/2022 5:40:49 AM
-1
01/05/2022 11:29:38 AM
0
01/05/2022 7:04:57 PM
0
01/06/2022 8:49:09 AM
0
В функции inday() используется аргумент start_day = 7/24, который задает время 7:00, поэтому функция определяет, осуществлена ли каждая транзакция в период с 7:00 4 января до 7:00 5 января.
Это можно проверить в таблице выходных данных, где транзакции, которые имели место после 7:00 4 января, возвращают логическое значение «ИСТИНА», а транзакции после 7:00 5 января возвращают логическое значение «ЛОЖЬ».
Пример 4. Объект диаграммы
Обзор
В скрипте загрузки используются те же набор данных и сценарий, что и в предыдущих примерах.
Однако в этом примере в приложение загружается неизмененный набор данных. Выполнив расчет, вы определите, осуществлена ли транзакция 5 января, создав меру в объекте диаграммы.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение:
date
Чтобы рассчитать, совершена ли транзакция 5 января, создайте следующую меру:
=inday(date,'01/05/2022 12:00:00 AM',0)
Результирующая таблица
date
inday(date,'01/05/2022 12:00:00 AM',0)
01/01/2022 7:34:46 PM
0
01/01/2022 10:10:22 PM
0
01/02/2022 8:35:54 AM
0
01/03/2022 2:21:53 PM
0
01/04/2022 6:49:38 PM
0
01/04/2022 10:58:34 PM
0
01/05/2022 5:40:49 AM
-1
01/05/2022 11:29:38 AM
-1
01/05/2022 7:04:57 PM
-1
01/06/2022 8:49:09 AM
0
Пример 5. Сценарий
Обзор
В этом примере выявлено, что вследствие ошибки оборудования изделия, изготовленные 5 января, являются дефектными. Конечному пользователю требуется объект диаграммы, который отображает по дате, какие изготовленные продукты были дефектными, а какие бездефектными, а также стоимость продуктов, изготовленных 5 января.
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, который загружается в таблицу под именем Products (Продукты).
Функция inday() возвращает логическое значение при проверки дат производства каждого продукта. Для любого изделия, изготовленного 5 января, функция inday() возвращает логическое значение «ИСТИНА» и ставит отметку «Дефектный». Любое изделие, которое возвращает значение «ЛОЖЬ», то есть изготовлено в другой день, отмечается как «Бездефектный».
Помогла ли вам эта страница?
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!