Эта функция возвращает метку текущего времени. Эта функция возвращает значения в формате системной переменной TimeStamp. Значение timer_mode по умолчанию — 1.
Синтаксис:
now([
timer_mode])
Возвращаемые типы данных: двойное значение
Функцию now() можно использовать в скрипте загрузки или в объектах диаграммы.
Аргументы
Аргумент
Описание
timer_mode
Может иметь следующие значения:
0 (время последней завершенной загрузки данных) 1 (время вызова функции) 2 (время открытия приложения)
Примечание к информацииЕсли вы используете функцию в скрипте загрузки данных, функция timer_mode=0 выдаст время последней завершенной загрузки данных, а timer_mode=1 выдаст время вызова функции в текущей загрузке данных.
Примечание к подсказкеФункция now() оказывает значительное влияние на быстродействие, в результате чего могут возникать проблемы с прокруткой, если эта функция используется в выражениях таблицы. Когда ее использование не является абсолютно необходимым, рекомендуется использовать вместо нее функцию today(). Если макет требует использования now(), рекомендуется по возможности применять параметры now(0) или now(2), не используемые по умолчанию, так как они не требуют постоянных перерасчетов
Когда это следует использовать
Функция now() часто используется как компонент внутри выражения. Например, ее можно использовать для вычисления оставшегося времени жизненного цикла продукта. Функцию now() рекомендуется использовать вместо функции today(), когда в выражении требуется учитывать часть дня.
В следующей таблице приводится объяснение результата, возвращаемого функцией now(), в зависимости от различных значений аргумента timer_mode:
Примеры функции
Значение timer_mode
Результат при использовании в скрипте загрузки
Результат при использовании в объекте диаграммы
0
Возвращает метку времени в формате системной переменной TimeStamp для даты последней успешной перезагрузки, предшествующей самой последней перезагрузке данных.
Возвращает метку времени в формате системной переменной TimeStamp для даты последней перезагрузки данных.
1
Возвращает метку времени в формате системной переменной TimeStamp для самой последней перезагрузки данных.
Возвращает метку времени вызова функции в формате системной переменной TimeStamp.
2
Возвращает метку времени в формате системной переменной TimeStamp для начала сеанса пользователя в приложении. Это значение не будет обновляться, если пользователь не перезагрузит скрипт.
Возвращает метку времени в формате системной переменной TimeStamp для начала сеанса пользователя в приложении. Это значение будет обновляться в случае начала нового сеанса или перезагрузки данных в приложение.
Региональные настройки
Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: ММ/ДД/ГГГГ. Формат даты указан в операторе SET DateFormat скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами.
Региональные настройки по умолчанию в приложениях основаны на системных региональных настройках компьютера или сервера, где установлено ПО Qlik Sense. Если на сервере Qlik Sense, к которому обращается пользователь, выбран шведский язык, то редактор загрузки данных будет использовать шведские региональные настройки для даты, времени и валюты. Эти параметры регионального формата не связаны с языком, отображаемым в интерфейсе пользователя Qlik Sense. Qlik Sense будет отображаться на языке, который используется в браузере.
Пример 1. Создание объектов с использованием скрипта загрузки
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Этот пример создает три переменные с использованием функции now(). Каждая переменная использует один из параметров timer_mode для демонстрации эффекта.
Чтобы продемонстрировать назначение переменных, перезагрузите скрипт, а затем, через короткий период времени, выполните вторую перезагрузку. Это приведет к тому, что переменные now(0) и now(1) будут показывать разные значения, тем самым правильно демонстрируя свое назначение.
Скрипт загрузки
LET vPreviousDataLoad = now(0);
LET vCurrentDataLoad = now(1);
LET vApplicationOpened = now(2);
Результаты
После загрузки данных во второй раз создайте три текстовых поля, следуя приведенным ниже инструкциям.
Сначала создайте текстовое поле для данных, загруженных ранее.
Выполните следующие действия.
Создайте текстовое поле, используя объект диаграммы Текст и изображение.
Добавьте в объект следующую меру:
=vPreviousDataLoad
В области Вид выберите Show titles и добавьте в объект заголовок «Время предыдущей загрузки».
Затем создайте текстовое поле для данных, которые загружены в данный момент.
Выполните следующие действия.
Создайте текстовое поле, используя объект диаграммы Текст и изображение.
Добавьте в объект следующую меру:
=vCurrentDataLoad
В области Вид выберите Show titles и добавьте в объект заголовок «Время текущей загрузки».
Создайте последнее текстовое поле, в котором будет отображаться время начала сеанса пользователя в приложении.
Выполните следующие действия.
Создайте текстовое поле, используя объект диаграммы Текст и изображение.
Добавьте в объект следующую меру:
=vApplicationOpened
В области Вид выберите Show titles и добавьте в объект заголовок «Начало сеанса пользователя».
В приведенной выше диаграмме показаны примерные значения для каждой из созданных переменных. Например, это могут быть следующие значения:
Время предыдущей перезагрузки: 6/22/2022 8:54:03 AM
Время текущей перезагрузки: 6/22/2022 9:02:08 AM
Начало сеанса пользователя: 6/22/2022 8:40:40 AM
Пример 2. Создание объектов без использования скрипта загрузки
Обзор
В этом примере используются три объекта диаграммы с помощью функции now() и без загрузки переменных или данных в приложение. Каждый объект диаграммы использует один из параметров timer_mode для демонстрации своего эффекта.
Для этого примера не предусмотрен скрипт загрузки.
Выполните следующие действия.
Откройте Редактор загрузки данных.
Не изменяя существующий скрипт загрузки, щелкните Загрузить данные.
Через короткий период времени загрузите скрипт повторно.
Результаты
После загрузки данных во второй раз создайте три текстовых поля.
Сначала создайте текстовое поле для последней перезагрузки данных.
Выполните следующие действия.
Создайте текстовое поле, используя объект диаграммы Текст и изображение.
Добавьте следующую меру.
=now(0)
В области Вид выберите Показать заголовки и добавьте в объект заголовок «Последняя перезагрузка данных».
Затем создайте текстовое поле для отображения текущего времени.
Выполните следующие действия.
Создайте текстовое поле, используя объект диаграммы Текст и изображение.
Добавьте следующую меру:
=now(1)
В области Вид выберите Показать заголовки и добавьте в объект заголовок «Текущее время».
Создайте последнее текстовое поле, в котором будет отображаться время начала сеанса пользователя в приложении.
Выполните следующие действия.
Создайте текстовое поле, используя объект диаграммы Текст и изображение.
Добавьте следующую меру:
=now(2)
В области Вид выберите Показать заголовки и добавьте в объект заголовок «Начало сеанса пользователя».
В приведенной выше диаграмме показаны примерные значения для каждого из созданных объектов. Например, это могут быть следующие значения:
Последняя перезагрузка данных: 6/22/2022 9:02:08 AM
Текущее время: 6/22/2022 9:25:16 AM
Начало сеанса пользователя: 6/22/2022 8:40:40 AM
Объект диаграммы «Последняя перезагрузка данных» использует значение timer_mode = 0. В результате этого возвращается метка времени для последней успешной перезагрузки данных.
Объект диаграммы «Текущее время» использует значение timer_mode = 1. В результате этого возвращается текущее время по системным часам. В случае обновления листа или объекта это значение обновляется.
Объект диаграммы «Начало сеанса пользователя» использует timer_mode = 2. В результате этого возвращается метка времени, когда пользователь открыл приложение и начал сеанс.
Пример 3. Сценарий
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий инвентарь для операции майнинга криптовалюты, который загружается в таблицу под именем Inventory.
Данные со следующими полями: id, purchase_date и wph (ватт в час).
Пользователю нужна таблица, в которой по id отображается общая стоимость каждой фермы для майнинга, начисленная за месяц до текущего момента с точки зрения энергопотребления.
Это значение должно обновляться при каждом обновлении объекта диаграммы. Текущая стоимость электричества составляет $0.0678 за кВт⋅ч.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение: id.
Создайте следующую меру:
=(now(1)-monthstart(now(1)))*24*wph/1000*0.0678
Если объект диаграммы был обновлен в 6/22/2022 10:39:05 AM, он должен вернуть следующие результаты:
Результирующая таблица
id
=(now(1)-monthstart(now(1)))*24*wph/1000*0.0678
8188
$39.18
8189
$49.97
8190
$42.81
8191
$46.13
8192
$44.42
8193
$39.18
8194
$46.83
8195
$81.72
8196
$42.95
8197
$42.95
8198
$39.18
8199
$42.29
8200
$42.67
8201
$42.99
8202
$42.99
8203
$42.25
8204
$43.37
8205
$46.13
8206
$39.53
Пользователю требуется, чтобы результаты объекта обновлялись каждый раз при обновлении самого объекта. Поэтому аргумент timer_mode предоставлен для экземпляров функции now() в приложении. Метка времени для начала месяца, определенного с использованием функции now() в качестве аргумента метки времени в функции monthstart(), вычитается из текущего времени, определенного с помощью функции now(). Это дает общее количество прошедшего времени в этом месяце, выраженное в днях.
Это значение умножается на 24 (количество часов в сутках), а затем на значение в поле wph.
Чтобы преобразовать значение из Вт⋅ч в кВт⋅ч, результат делится на 1000 перед заключительным умножением на тариф оплаты за кВт⋅ч.
Помогла ли вам эта страница?
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!