В Oracle Analytics администраторы устанавливают в разделе Настройки системы часовой пояс по умолчанию, который используется для расчетов. Эта глобальная настройка применяется ко всем расчетам. В этом разделе объясняется, как применять функцию TIMESTAMPADD
для указания другого часового пояса, чтобы использовать другую метку времени для определенного расчета.
Установка часового пояса по умолчанию, используемого в расчетах
CURRENT_DATE
CURRENT_TIME()
CURRENT_TIMESTAMP()
NOW()
Администраторы могут менять метки времени, используемые в расчетах, с помощью параметра Часовой пояс по умолчанию для расчета даты в разделе Расширенные системные настройки консоли. Выберите в раскрывающемся списке нужный часовой пояс и примените изменения, чтобы новое значение вступило в силу.
.png
Подробнее о глобальных настройках часового пояса см. в разделе Системные настройки — параметры форматирования.
Использование в расчетах другого часового пояса для меток времени
Для создания в расчетах метки времени, отличной от системных настроек, используются функции TIMESTAMPADD
и CURRENT_TIMESTAMP()
или NOW()
. Базовый расчет для TIMESTAMPADD
:
TIMESTAMPADD(SQL_TSI_<<interval>>, <<integer expression>>, <<timestamp expression>>)
Для расчетов меток времени в качестве интервала принимается HOUR
, а временное смещение равно разнице во времени в часах между UTC и требуемым часовым поясом. Пример:
TIMESTAMPADD(SQL_TSI_HOUR, -6,CURRENT_TIMESTAMP(5))
Этот расчет возвращает метку текущего времени в часовом поясе US Mountain. Можно создать новый столбец метки времени: либо как производный в источнике логической таблицы, либо как сопоставленный непосредственно с базой данных. Разница заключается в том, где выполняется расчет: в Oracle Analytics или в базе данных. На следующей иллюстрации показан расчет, сопоставленный непосредственно с базой данных в диалоговом окне "Выражение" в построителе выражений.
Если по умолчанию используется часовой пояс UTC, функция CURRENT_DATE
не возвращает правильную дату для некоторых значений времени применительно к часовому поясу пользователя. Например, если по времени UTC сейчас полночь, местная дата не соответствует дате UTC до наступления полуночи в соответствующем часовом поясе.
Чтобы решить эту проблему, используйте расчет метки времени как даты. Пример:
cast(TIMESTAMPADD(SQL_TSI_HOUR, -6,CURRENT_TIMESTAMP) as date)
На следующей иллюстрации показан расчет, созданный как вычисляемый столбец в диалоговом окне "Вычисляемый логический столбец" в построителе выражений.
Для уникальных или единичных отчетов можно создать расчет метки времени на уровне отчета либо в визуализации данных, либо в классическом анализе. Если вы планируете использовать расчеты повторно, часто бывает проще определить их как столбцы в семантической модели (или файле RPD).
Подробнее об упомянутых здесь функциях см. в разделах "Функции даты и времени" и "Функции временного ряда."