Procedure demonstrate how to convert time between two timezone.
DECLARE v_operator varchar2(1) ; v_hours number(2); v_min number(2); v_total_min number(4); v_datetime varchar2(128); v_sessiondatetime varchar2(128); BEGIN select substr(tz_offset( sessiontimezone ),0,1) INTO v_operator from dual; select to_number(substr(tz_offset( sessiontimezone ),2,2)) INTO v_hours from dual; select to_number(substr(tz_offset( sessiontimezone ),5,2)) INTO v_min from dual; v_total_min := v_hours * 60 + v_min; if v_operator = '+' then select to_char(sysdate - (.000694 *v_total_min ) , 'HH24:MI') into v_datetime from dual; else select to_char(sysdate + (.000694 *v_total_min ), 'HH24:MI') into v_datetime from dual; end if; select to_char(sysdate, 'HH24:MI') into v_sessiondatetime from dual; dbms_output.put_line(v_sessiondatetime ); dbms_output.put_line(v_datetime); END;
This is very simple example, you can use this as a reference to complete your needs.
Cheers