Эта функция возвращает значение True, если значение timestamp находится в пределах части дня, включающей значение, заданное в поле base_timestamp до определенной миллисекунды, указанной в поле base_timestamp, включительно.
Функция indaytotime() возвращает результат в виде логического значения в зависимости от того, в какой момент сегмента дня попадает ли значение метки времени. Начальная граница этого сегмента совпадает с началом дня, который по умолчанию наступает в полночь; это можно изменить помощью аргумента day_start функции indaytotime(). Конечная граница сегмента дня определяется аргументом base_timestamp функции.
Когда это следует использовать
Функция indaytotime() возвращает результат в виде булева значения. Обычно этот тип функции используется в качестве условия в if expression. Функция indaytotime() возвращает агрегирование или расчет в зависимости от того, возникла ли метка времени в сегменте дня вплоть до момента базовой метки времени.
Например, функция indaytotime() может использоваться для отображения суммы, вырученной от продажи билетов на сеансы, состоявшиеся на данный момент текущего дня.
Возвращаемые типы данных: Булево значение
В 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 будет отображаться на языке, который используется в браузере.
Откройте Редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий набор транзакций для периода с 4 по 5 января, загружается в таблицу Transactions.
Поле даты, предоставленное в формате переменной (M/D/YYYY h:mm:ss[.fff] TT) системы TimeStamp.
Предшествующая загрузка, содержащая функцию indaytotime(), которая задана как 'in_day_to_time' — поле, определяющее, совершена ли каждая транзакция до 9:00 утра.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
date
in_day_to_time
Результирующая таблица
date
in_day_to_time
01/04/2022 3:41:54 AM
0
01/04/2022 4:19:43 AM
0
01/04/2022 04:53:47 AM
0
01/04/2022 8:38:53 AM
0
01/04/2022 10:37:52 AM
0
01/04/2022 1:54:10 PM
0
01/04/2022 5:53:23 PM
0
01/04/2022 8:13:26 PM
0
01/04/2022 10:00:49 PM
0
01/05/2022 7:45:37 AM
-1
01/05/2022 8:44:36 AM
-1
01/05/2022 11:26:08 AM
0
01/05/2022 6:43:08 PM
0
01/05/2022 10:54:10 PM
0
01/05/2022 11:09:09 PM
0
Поле in_day_to_time field создано предшествующим оператором load с использованием функции indaytotime(), где в качестве аргументов функции переданы поле даты, жестко запрограммированная метка времени для 9:00 утра 5 января и смещение 0. Любая транзакция, которая совершается с полуночи до 9:00 утра 5 января, возвращает TRUE.
Пример 2. Скрипт period_no
Обзор
В скрипте загрузки используются те же набор данных и сценарий, что и в первом примере.
Однако в этом примере вы рассчитаете, произошла ли транзакция за день до 5 января.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
date
in_day_to_time
Результирующая таблица
date
in_day_to_time
01/04/2022 3:41:54 AM
-1
01/04/2022 4:19:43 AM
-1
01/04/2022 04:53:47 AM
-1
01/04/2022 8:38:53 AM
-1
01/04/2022 10:37:52 AM
0
01/04/2022 1:54:10 PM
0
01/04/2022 5:53:23 PM
0
01/04/2022 8:13:26 PM
0
01/04/2022 10:00:49 PM
0
01/05/2022 7:45:37 AM
0
01/05/2022 8:44:36 AM
0
01/05/2022 11:26:08 AM
0
01/05/2022 6:43:08 PM
0
01/05/2022 10:54:10 PM
0
01/05/2022 11:09:09 PM
0
В этом примере в качестве аргумента смещения в функции indaytotime() использовалось значение -1, поэтому функция определяет, произошла ли транзакция 4 января. Это можно проверить в таблице выходных данных, где одна транзакция возвращает результат в виде логического значения TRUE.
Пример 3. Скрипт day_start
Обзор
Используется тот же набор данных и сценарий, что в первом примере.
Однако в этом примере используется политика компании, согласно которой рабочий день начинается и заканчивается в 8:00 утра.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
date
in_day_to_time
Результирующая таблица
date
in_day_to_time
01/04/2022 3:41:54 AM
0
01/04/2022 4:19:43 AM
0
01/04/2022 04:53:47 AM
0
01/04/2022 8:38:53 AM
0
01/04/2022 10:37:52 AM
0
01/04/2022 1:54:10 PM
0
01/04/2022 5:53:23 PM
0
01/04/2022 8:13:26 PM
0
01/04/2022 10:00:49 PM
0
01/05/2022 7:45:37 AM
0
01/05/2022 8:44:36 AM
-1
01/05/2022 11:26:08 AM
0
01/05/2022 6:43:08 PM
0
01/05/2022 10:54:10 PM
0
01/05/2022 11:09:09 PM
0
Так как аргумент start_day = 8/24, который соответствует 8:00 утра, используется в функции indaytotime(), каждый день начинается и заканчивается в 8:00 утра. Поэтому функция indaytotime() будет возвращать логическое значение «ИСТИНА» для любой транзакции, которая имела место в период с 8:00 до 9:00 5 января.
Пример 4. Объект диаграммы
Обзор
Используется тот же набор данных и сценарий, что в первом примере.
Однако в этом примере в приложение загружается неизмененный набор данных. Выполнив расчет, вы определите, осуществлена ли транзакция до 9:00 утра 5 января, создав меру в объекте диаграммы.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение:
date.
Чтобы определить, совершена ли транзакция до 9:00 утра 5 января, создайте следующую меру:
=indaytotime(date,'01/05/2022 9:00:00 AM',0)
Результирующая таблица
date
=indaytotime(date,'01/05/2022 9:00:00 AM',0)
01/04/2022 3:41:54 AM
0
01/04/2022 4:19:43 AM
0
01/04/2022 04:53:47 AM
0
01/04/2022 8:38:53 AM
0
01/04/2022 10:37:52 AM
0
01/04/2022 1:54:10 PM
0
01/04/2022 5:53:23 PM
0
01/04/2022 8:13:26 PM
0
01/04/2022 10:00:49 PM
0
01/05/2022 7:45:37 AM
-1
01/05/2022 8:44:36 AM
-1
01/05/2022 11:26:08 AM
0
01/05/2022 6:43:08 PM
0
01/05/2022 10:54:10 PM
0
01/05/2022 11:09:09 PM
0
Мера in_day_to_time создана в объекте диаграммы с использованием функции indaytotime(), где в качестве аргументов функции переданы поле даты, жестко запрограммированная метка времени для 9:00 утра 5 января и смещение 0. Любая транзакция, которая совершается с полуночи до 9:00 утра 5 января, возвращает TRUE. Это можно проверить в таблице результатов.
Пример 5. Сценарий
Обзор
В этом примере набор данных, содержащий продажи билетов для местного кинотеатра, загружается в таблицу Ticket_Sales. Сегодня 3 мая 2022 года, сейчас 11:00 утра.
Пользователь хочет, чтобы объект диаграммы ключевого показателя эффективности отображал доход, полученный от всех сеансов, которые сегодня уже состоялись на текущий момент.
Создайте объект ключевого показателя эффективности.
Создайте меру, которая будет отображать сумму всех продаж билетов на сеансы, которые состоялись сегодня на данный момент, с использованием функции indaytotime():
Создайте метку для объекта ключевого показателя эффективности — «Текущий доход».
Задайте параметру Формат чисел меры значение Денежный.
Общая сумма продажи билетов за период до 11:00 утра 3 мая 2022 года составила $52,50.
Функция indaytotime () возвращает логическое значение при сравнении времени сеансов для каждой продажи билетов с текущим временем ('05/03/2022 11:00:00 AM’). Для любого сеанса 3 мая до 11:00 утра функция indaytotime () возвращает логическое значение «ИСТИНА», и цена билета будет включена в итоговую сумму.
Помогла ли вам эта страница?
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!