Неофициальный форум пользователей Qlik Sense & Qlikview

Для разработчиков => Вопросы по Qlik Sense & QlikView => Тема начата: LoryMax от 28 февраля 2017, 10:38:09

Название: Условия по времени (Qlikview & Qlik Sense)
Отправлено: LoryMax от 28 февраля 2017, 10:38:09
Приветствую!

Хочу сделать обновление в зависимости от времени. Если обновляем в день создания текущего файла, или до 3х ночи следующего дня - то шаг обновления не делаем.

Не работает условие:

Let IH = 3;
Let DateLastData = date(FileTime(a)-MakeTime(IH));
If date(today(1)-MakeTime(IH)) > DateLastData then
...


У меня файл создан 28.02.2017 18:34, сейчас 01.03.2017 1:37, то есть по факту в условии будет 28.02.2017 > 28.02.2017, но почему то QS считает истиной.
Название: Re: Условия по времени
Отправлено: admin от 01 марта 2017, 07:22:30
Привет.
Проводите сравнение в числовом формате.
Дата - это целая часть числа, а время - дробная.
Название: Re: Условия по времени (Qlikview & Qlik Sense)
Отправлено: millik от 06 марта 2017, 03:01:32
Цитата: LoryMax от 28 февраля  2017, 10:38:09  
Приветствую!

Хочу сделать обновление в зависимости от времени. Если обновляем в день создания текущего файла, или до 3х ночи следующего дня - то шаг обновления не делаем.

Не работает условие:

Let IH = 3;
Let DateLastData = date(FileTime(a)-MakeTime(IH));
If date(today(1)-MakeTime(IH)) > DateLastData then
...


У меня файл создан 28.02.2017 18:34, сейчас 01.03.2017 1:37, то есть по факту в условии будет 28.02.2017 > 28.02.2017, но почему то QS считает истиной.

Потому что по факту в условии будет не "28.02.2017 > 28.02.2017", а "28.02.2017 22:37 > 28.02.2017 15:34" что дает истину. 
Фунцкия Date() только преобразовывет формат данных для отображения, но не обрезает время.

Используйте Floor(Num(Date(...))), тем самым вы отрежите время.