Хранение форматов TimeStamp и Time в Qlik Sense

Использование формата Time и Timestamp в задачах бизнес-аналитики встречается не так часто, как задачи с датами. Однако, если такая задача появляется, то появляется очень много вопросов как сделать то или иное преобразование.

В предыдущей главе учебника я описывал как хранится формат timestamp (из чего он состоит). В этом разделе я опишу дополнительно с помощью каких функций можно работать со значениями Time и Timestamp.

Итак, как мы выяснили раньше Timestamp – это дробное число, в котором целая часть – это дата, а дробная часть – это время (т.е. time). Все число – это дата время или timestamp.

Рассмотрим результат работы функции Now() и функций, которые изменяют либо формат отображения данных, либо само число:

Qlik Sense Timestamp & Time – результат преобразования различных функций
Now() 16.06.2019 15:03:57
Num(Now()) 43632,627743056
Time(Now()) 15:03:57
Num(Time(Now())) 43632,627743056
Time#(Now(),’DD.MM.YYYY h:mm:ss[.fff]’) 16.06.2019 15:03:57
Num(Time#(Now(),’DD.MM.YYYY h:mm:ss[.fff]’)) 0,627743056
Frac(Now()) 0,627743056
Time(Frac(Now())) 15:03:57

Изменение в дробной части влияет на время, изменение в целой части влияет на дату. Если Вам необходимо придумать модель Qlik Sense, в которой будет хитрым образом обрабатываться время – этих знаний будет достаточно для того, чтобы “изобрести” нужный Вам алгоритм.

Топ функций в Qlik Sense для работы со временем

1. Now() – возвращает текущую Дату и текущее время (отображается в соответствии с системной переменной SET TimestampFormat=’DD.MM.YYYY h:mm:ss[.fff]’; см. вкладку Main в скрипте).

2. Time() и Time#() – аналог Date() и Date#(), только для времени). Time влияет только на отображение данных в модели, т.е. влияет только на формат отображения числа. Time# – сообщает Qlik в каком формате данные поступают на вход функции, результатом будет дробная часть (если формат определен корректно).

3. Frac() и Num() – Frac() оставляет от числа с дробной частью только дробную часть, т.е. остается часть со временем. Num() меняет формат отображения дата время на числовой формат (см. пример вверху). 

4. ReloadTime()

5. MakeTime()

6. ConvertToLocalTime()

7. FileTime() – с помощью этой функции в скрипте можно получить дату и время обновления файла. Пример получения даты и времени обновления файла qvd:

Let vFileDateTimeModified = FileTime('C:\QlikSenseProject\SourceData\QVD\РегистрПродаж.qvd');

8. Timestamp() и Timestamp#()

9. Interval()

Примеры (кейсы) по работе с форматом Time & TimeStamp

Qlik Sense & MakeTime: Минута – Час в числовом выражении

MakeTime(0,1) = 0:01:00					//1 минута
Frac(MakeTime(0,1)) = 0,000694444		//1 минута в числовом выражении
Frac(MakeTime(0,1))*60 = 0,041666667	//1 час в числовом выражении
Frac(MakeTime(0,1))*60*24 = 1			//1 день = 1 в числовом выражении

Округление дата + время = TimeStamp до минуты

Now()
Num(Now())
TimeStamp(Num(time(frac(floor(Now(),1/1440)),'hh:mm'))+floor(Now()))
Num(time(frac(floor(Now(),1/1440)),'hh:mm'))+floor(Now())

Результат работы формул:

0 0 голосов
Рейтинг статьи

Подписаться
Уведомление о
guest
0 комментариев
Встроенная Обратная Связь
Просмотр всех комментариев
0
Оставьте, пожалуйста, комментарий!x