Вы можете получить текущий системный часовой пояс [в том или ином формате или в другом] через:
select to_char(systimestamp,'TZD | TZH TZM [ TZR ]'), DBTIMEZONE
from dual;
Следующее может помочь с преобразованием. Не уверен, совпадает ли часовой пояс вашего сеанса с часовым поясом вашей базы данных.
SELECT rec1, SYS_EXTRACT_UTC(rec1), cast(rec1 as timestamp with local time zone)
FROM test_table1
когда я использую systeimestamp, я получаю ноль
TZD может возвращать ноль (например, он знает, какое смещение он имеет, но для него нет псевдонима) TZR не должен. Может быть, что-то вроде ...
SELECT FROM_TZ(TIMESTAMP '2000-03-28 08:00:00', to_char(systimestamp,'TZR'))
FROM DUAL;