Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

А сам favicon.ico положить в customjs папку

8. Проблема с часовыми поясами в ViQube

...

Бывает происходит такая ситуация, что при запросе данных в каком-то менеджере СУБД из SQL вы получаете одни данные, а при запросе тех же данных в загрузчике ViQube вы получаете другие данные (итоговое значение меньше).
Как выяснилось это происходит из-за того, что ваш СУБД менеджер как правило работает под вашим локальным часовым поясом, а загрузчик ViQube работает в GMT поясе (Гринвич). Если быть конкретнее, то функции, которые используются в SQL запросе, например now() покажут разное время и в следствии чего запрос вернёт различные данные. Сам же сервер СУБД обычно работает в вашем же поясе, либо данные которые ему поступают идут с датой и временем из вашего пояса.

Например вы хотите вернуть суммарные значения за предыдущий час, ваш часовой пояс МСК, вы выполняете в менеджере:

Блок кода
languagesql
select sum(value) from "testTimeZones" ttz
where date > now() - interval '1 hours'

В ответ получаете ожидаемое значение.
Далее выполняете такой-же запрос в загрузчике и что происходит. JDBC драйвер в загрузчике выполняет функцию now() из под пояса GMT, т.е. он -3 с МСК. Запрос который отправится на сервер будет иной, т.к. now() будет -3 часа и собственно данные которые придут в ответ будут другие, значение будет меньше.

Чтобы этого избежать, можно прокинуть файл timezone в контейнер ViQube, т.к. Java машина ориентируется на него. После этого JDBC драйвер будет знать ваш часовой пояс и now() будет возвращать такую же дату как и в менеджере.
Чтобы это сделать, необходимо открыть файл viqube.yml и в блок volumes в конец добавить строчку:

Блок кода
- /etc/timezone:/etc/timezone:ro

...

Далее перезапускаем платформу и проверяем.