Эта функция возвращает время, рассчитанное в формате часы hh, минуты mm и секунды ss.
Синтаксис:
MakeTime(hh [ , mm [ , ss ] ])
Возвращаемые типы данных: двойное значение
Аргументы
Аргумент
Описание
hh
Час — целое число.
mm
Минута — целое число.
Если минута не задана, используется 00.
ss
Секунда — целое число.
Если секунда не задана, используется 00.
Когда это следует использовать
Функция maketime() обычно используется в скриптах для создания данных с целью формирования поля времени. В некоторых случаях, когда поле времени создается на основе входного текста, эту функцию можно использовать для получения времени на основе его компонентов.
В этих примерах используется формат времени h:mm:ss. Формат времени указан в операторе SET TimeFormat в верхней части скрипта загрузки данных. Измените формат в примерах согласно своим пожеланиям.
Примеры функции
Пример
Результат
maketime(22)
Возвращает 22:00:00.
maketime(22, 17)
Возвращает 22:17:00.
maketime(22,17,52 )
Возвращает 22:17:52.
Региональные настройки
Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: ММ/ДД/ГГГГ. Формат даты указан в операторе SET DateFormat скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами. Для получения дополнительной информации см. Изменение региональных настроек для создания приложений и скриптов.
Региональные настройки по умолчанию в приложениях основаны на профиле пользователя. Эти параметры регионального формата не связаны с языком, отображаемым в интерфейсе пользователя Qlik Cloud. Qlik Cloud будет отображаться на языке, который используется в браузере.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
transaction_hour
transaction_minute
transaction_second
transaction_time
Результирующая таблица
transaction_hour
transaction_minute
transaction_second
transaction_time
2
52
22
2:52:22 AM
6
32
07
6:32:07 AM
9
25
23
9:25:23 AM
12
09
16
12:09:16 PM
17
55
22
5:55:22 PM
18
43
30
6:43:30 PM
21
43
41
9:43:41 PM
Поле transaction_time создано предшествующим оператором load с использованием функции maketime(), где в качестве аргумента функции переданы поля часов, минут и секунд.
Затем функция объединяет и преобразует эти значения в поле времени, возвращая результаты в формате времени системной переменной TimeFormat.
Пример 2. Функция time()
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Используется тот же набор данных и сценарий, что в первом примере.
Создание поля transaction_time, которое позволяет отображать результаты в 24-часовом формате времени, не изменяя системную переменную TimeFormat.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
transaction_hour
transaction_minute
Чтобы вычислить transaction_time, создайте эту меру:
=maketime(transaction_hour,transaction_minute)
Результирующая таблица
transaction_hour
transaction_minute
=maketime(transaction_hour, transaction_minute)
2
52
2:52:00 AM
6
32
6:32:00 AM
9
25
9:25:00 AM
12
09
12:09:00 PM
17
55
5:55:00 PM
18
43
6:43:00 PM
21
43
9:43:00 PM
Мера transaction_time создана в объекте диаграммы с использованием функции maketime(), где в качестве аргументов функции переданы поля часов и минут.
Затем функция объединяет эти значения, для секунд задается значение 00. Затем эти значения преобразуются в поле времени, а результаты возвращаются в формате системной переменной TimeFormat.
Пример 4. Сценарий
Обзор
Создайте набор данных календаря для января 2022 года с разбивкой на восьмичасовые приращения.
Скрипт загрузки
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';
tmpCalendar:
load
*
where year(date)=2022;
load
date(recno()+makedate(2021,12,31)) as date
AutoGenerate 31;
Left join(tmpCalendar)
load
maketime((recno()-1)*8,00,00) as time
autogenerate 3;
Calendar:
load
timestamp(date + time) as timestamp
resident tmpCalendar;
drop table tmpCalendar;
Результаты
Результирующая таблица
timestamp
1/1/2022 12:00:00 AM
1/1/2022 8:00:00 AM
1/1/2022 4:00:00 PM
1/2/2022 12:00:00 AM
1/2/2022 8:00:00 AM
1/2/2022 4:00:00 PM
1/3/2022 12:00:00 AM
1/3/2022 8:00:00 AM
1/3/2022 4:00:00 PM
1/4/2022 12:00:00 AM
1/4/2022 8:00:00 AM
1/4/2022 4:00:00 PM
1/5/2022 12:00:00 AM
1/5/2022 8:00:00 AM
1/5/2022 4:00:00 PM
1/6/2022 12:00:00 AM
1/6/2022 8:00:00 AM
1/6/2022 4:00:00 PM
1/7/2022 12:00:00 AM
1/7/2022 8:00:00 AM
1/7/2022 4:00:00 PM
1/8/2022 12:00:00 AM
1/8/2022 8:00:00 AM
1/8/2022 4:00:00 PM
1/9/2022 12:00:00 AM
+ 68 строк
Начальная функция autogenerate создает календарь, содержащий все даты в январе, в таблице под именем tmpCalendar.
Создается вторая таблица, содержащая три записи. Для каждой записи берется recno() – 1 (значения 0, 1, 2), результат умножается на 8, в результате создаются значения 0, 8, 16. Эти значения используются в качестве параметра часа в функции maketime(), минутам и секундам задается значение 0. В результате, таблица содержит три поля времени: 12:00:00 AM, 8:00:00 AM и 4:00:00 PM.
Эта таблица присоединяется к таблице tmpCalendar. Так как между соединяемыми таблицами отсутствуют совпадающие поля, строки времени добавляются к каждой строке даты. В результате каждая строка даты теперь повторяется три раза для каждого значения времени.
В заключение создается таблица Calendar с использованием резидентной загрузки таблицы tmpCalendar. Поля даты и времени объединены и помещены в функцию timestamp() для создания поля метки времени.
После этого таблица tmpCalendar отбрасывается.
Помогла ли вам эта страница?
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!