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: