У меня есть столбец в таблице Oracle DB, который имеет тип TIMESTAMP(6) WITH TIME ZONE
. Существуют строки данных с данными разных часовых поясов, некоторые UTC, некоторые в других смещениях временного интервала.Запрос Oracle TIMESTAMP с TIMEZONE
Есть ли способ, которым я могу запросить таблицу Oracle, чтобы результаты всегда возвращались как UTC, когда выполнялось соответствующее изменение времени? Есть ли что-то, что можно сделать по самому запросу или, возможно, изменить сеанс? Я попытался изменить часовой пояс сеанса на Utc, но это, похоже, влияет только на значение CURRENT_TIMESTAMP.
ALTER SESSION SET TIME_ZONE = 'Utc'
Например, если значение было сохранено как:
21-JAN-10 03.28.38.635000000 PM -05:00
запрос вернется в
21-JAN-10 08.28.38.635000000 PM Utc
определение Пример таблицы
CREATE TABLE "MyDb"."Books"
(
"GUID" RAW(32) DEFAULT SYS_GUID(),
"DATE_CREATED" TIMESTAMP (6) WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
);
Я предполагаю, что нет никакого способа, я могу изменить сеанс, поэтому логика «AT TIME ZONE„UTC“» автоматически? –
@StealthRabbi. Если столбец был «TIMESTAMP WITH LOCAL TIME ZONE», значение будет неявно преобразовано в часовой пояс сеанса, который может быть установлен в UTC. «TIMESTAMP WITH TIME ZONE» отображается в любом часовом поясе, в который он был вставлен, если вы не конвертируете его с чем-то вроде синтаксиса «AT TIME ZONE». –