sql >> Base de Datos >  >> RDS >> Oracle

Función TZ_OFFSET() en Oracle

En Oracle Database, el TZ_OFFSET() La función devuelve el desplazamiento de la zona horaria correspondiente al argumento en función de la fecha en que se ejecuta la instrucción.

Sintaxis

La sintaxis es así:

TZ_OFFSET({ 'time_zone_name'
          | '{ + | - } hh : mi'
          | SESSIONTIMEZONE
          | DBTIMEZONE
          }
         )

Ejemplos

Aquí hay algunos ejemplos para demostrar.

Nombre de región de zona horaria

Puede pasar un nombre de región de zona horaria válido:

SELECT TZ_OFFSET('Australia/Darwin')
FROM DUAL;

Resultado:

+09:30

Aquí le mostramos cómo obtener una lista de las zonas horarias admitidas en su sistema.

Compensación de zona horaria

Puede pasar un desplazamiento de zona horaria, en cuyo caso simplemente se devuelve a sí mismo:

SELECT TZ_OFFSET('-10:00')
FROM DUAL;

Resultado:

-10:00

El SESSIONTIMEZONE Función

El SESSIONTIMEZONE La función devuelve la zona horaria de la sesión actual. Puede usar esto para obtener el desplazamiento de la zona horaria de su sesión actual.

Ejemplo:

SELECT 
    SESSIONTIMEZONE,
    TZ_OFFSET(SESSIONTIMEZONE)
FROM DUAL;

Resultado en mi sesión:

      SESSIONTIMEZONE    TZ_OFFSET(SESSIONTIMEZONE) 
_____________________ _____________________________ 
Australia/Brisbane    +10:00                       

El DBTIMEZONE Función

El DBTIMEZONE La función devuelve la zona horaria de la base de datos. Esto puede o no ser lo mismo que el SESSIONTIMEZONE en su sistema.

Ejemplo:

SELECT 
    DBTIMEZONE,
    TZ_OFFSET(DBTIMEZONE)
FROM DUAL;

Resultado:

   DBTIMEZONE    TZ_OFFSET(DBTIMEZONE) 
_____________ ________________________ 
+00:00        +00:00                  

Argumentos nulos

Pasando null da como resultado null :

SET NULL 'null';
SELECT TZ_OFFSET(null)
FROM DUAL;

Resultado:

null

De forma predeterminada, SQLcl y SQL*Plus devuelven un espacio en blanco cada vez que null ocurre como resultado de un SQL SELECT declaración.

Sin embargo, puede usar SET NULL para especificar una cadena diferente a devolver. Aquí especifiqué que la cadena null debe ser devuelto.

Argumento faltante

Llamar a la función con el número incorrecto de argumentos, o sin pasar ningún argumento, genera un error:

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: