No banco de dados Oracle, o
TZ_OFFSET()
A função retorna o deslocamento de fuso horário correspondente ao argumento com base na data em que a instrução é executada. Sintaxe
A sintaxe fica assim:
TZ_OFFSET({ 'time_zone_name'
| '{ + | - } hh : mi'
| SESSIONTIMEZONE
| DBTIMEZONE
}
)
Exemplos
Aqui estão alguns exemplos para demonstrar.
Nome da região do fuso horário
Você pode passar um nome de região de fuso horário válido:
SELECT TZ_OFFSET('Australia/Darwin')
FROM DUAL;
Resultado:
+09:30
Veja como obter uma lista de fusos horários compatíveis em seu sistema.
Deslocamento de fuso horário
Você pode passar um deslocamento de fuso horário, nesse caso ele simplesmente retorna a si mesmo:
SELECT TZ_OFFSET('-10:00')
FROM DUAL;
Resultado:
-10:00
O SESSIONTIMEZONE
Função
O
SESSIONTIMEZONE
A função retorna o fuso horário da sessão atual. Você pode usar isso para obter o deslocamento de fuso horário da sua sessão atual. Exemplo:
SELECT
SESSIONTIMEZONE,
TZ_OFFSET(SESSIONTIMEZONE)
FROM DUAL;
Resultado na minha sessão:
SESSIONTIMEZONE TZ_OFFSET(SESSIONTIMEZONE) _____________________ _____________________________ Australia/Brisbane +10:00
O DBTIMEZONE
Função
O
DBTIMEZONE
A função retorna o fuso horário do banco de dados. Isso pode ou não ser o mesmo que SESSIONTIMEZONE
em seu sistema. Exemplo:
SELECT
DBTIMEZONE,
TZ_OFFSET(DBTIMEZONE)
FROM DUAL;
Resultado:
DBTIMEZONE TZ_OFFSET(DBTIMEZONE) _____________ ________________________ +00:00 +00:00
Argumentos nulos
Passando
null
resulta em null
:SET NULL 'null';
SELECT TZ_OFFSET(null)
FROM DUAL;
Resultado:
null
Por padrão, SQLcl e SQL*Plus retornam um espaço em branco sempre que
null
ocorre como resultado de um SQL SELECT
demonstração. No entanto, você pode usar
SET NULL
para especificar uma string diferente a ser retornada. Aqui eu especifiquei que a string null
deve ser devolvido. Argumento ausente
Chamar a função com o número errado de argumentos, ou sem passar nenhum argumento, resulta em um erro:
SELECT TZ_OFFSET()
FROM DUAL;
Resultado:
Error starting at line : 1 in command - SELECT TZ_OFFSET() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action: