Мы используем триггеры для вставки reg_Date и upd_Date вместе с необходимыми данными, а upd_date будет вставляться в UTC 0:00
Как преобразовать эту дату во время CET и получить соответствующую дату обновления из нижеследующего оператора select.
SELECT MAX(TO_DATE(TO_CHAR(upd_date,'yyyy-mm-dd HH:MI:SS'),'yyyy-mm-dd HH:MI:SS')) AS MAX_UPD_DATE
FROM MY_TABLE
WHERE user_id='SOMEVALUE';
хранилище upd_date в MY_TABLE будет отображаться как результат. Но я не хочу время UTC +0:00. Я хочу время CET (Европа / Стокгольм) Пожалуйста, помогите мне в этом.
2 ответа
Выберите SYSTIMESTAMP AT TIME ZONE 'CET' из двойного режима; Это сработало для меня
Ты можешь использовать SWITCHOFFSET()
в SQL
изменить дату и время на любой часовой пояс, который вы предпочитаете.
Это изменение не повлияет на исходное смещение даты и времени согласно MDN. Смотрите ссылку здесь
Например,
SELECT SWITCHOFFSET(column_name, '-05:00') FROM my_table
За Oracle
Есть функции, которые вы можете использовать. Например, TZ_OFFSET(timezone)
Документация или
SELECT FROM_TZ(column_name, 'US/Eastern') AT TIME ZONE 'Europe/London'
Вот более подробная информация о предложении AT TIME ZONE. ссылка Если вы хотите увидеть все доступные часовые пояса, вы можете выполнить этот запрос:
SELECT DISTINCT tzname FROM V$TIMEZONE_NAMES;
Единственное, что я не рекомендую - это добавлять или вычитать даты, потому что это может привести к большему количеству ошибок.