Na verdade, existem 3 fusos horários aqui, não 2
- o fuso horário da sessão/cliente
- Mostrado em SESSIONTIMEZONE
- Este é o fuso horário de CURRENT_DATE, LOCALTIMESTAMP e CURRENT_TIMESTAMP. A diferença entre esses 3 é o tipo de retorno, eles retornam DATE, TIMESTAMP e TIMESTAMP WITH TIME ZONE respectivamente)
- O fuso horário do banco de dados
- Mostrado em DBTIMEZONE
- Este é o fuso horário usado para o armazenamento interno dos valores TIMESTAMP WITH LOCAL TIME ZONE. Observe que os valores são convertidos de/para o fuso horário da sessão em inserir/selecionar, portanto, na verdade, não é tão importante quanto parece
- Este NÃO é o fuso horário de SYSDATE/SYSTIMESTAMP
- O fuso horário do SO do banco de dados
- No unix, é baseado na variável TZ quando o Oracle é iniciado
- Este é o fuso horário de SYSDATE e SYSTIMESTAMP
Em seu primeiro exemplo, posso ver que a sessão TZ é UTC-6, o banco de dados TZ é UTC e o fuso horário do sistema operacional do banco de dados é UTC-6.
Em seu segundo exemplo, posso ver que a sessão TZ é UTC-6, o banco de dados TZ é UTC+2 e o fuso horário do sistema operacional do banco de dados é UTC+1.