Мы используем триггеры для вставки 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;

Единственное, что я не рекомендую - это добавлять или вычитать даты, потому что это может привести к большему количеству ошибок.

Другие вопросы по тегам