Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Função TZ_OFFSET() no Oracle


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: