En Oracle Database, el SYS_EXTRACT_UTC()
La función extrae el UTC (hora universal coordinada) de un valor de fecha y hora con el desplazamiento de la zona horaria o el nombre de la región de la zona horaria.
Sintaxis
La sintaxis es así:
SYS_EXTRACT_UTC(datetime_with_timezone)
Ejemplo
Aquí hay un ejemplo para demostrarlo:
SELECT
SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789 +04:00')
FROM DUAL;
Resultado:
25/AUG/35 06:30:45.123456789 AM
El formato resultante depende del valor de su NLS_TIMESTAMP_FORMAT
parámetro. El valor predeterminado de este parámetro se deriva del NLS_TERRITORY
parámetro. Cambiar cualquiera de estos puede cambiar el formato de SYS_EXTRACT_UTC()
función para su sesión.
Ejemplo:
ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'DD-MON-RRRR HH24:MI:SSXFF';
SELECT
SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789 +04:00')
FROM DUAL;
Resultado:
25-AUG-2035 06:30:45.123456789
Y así es como se ve cuando configuro NLS_TERRITORY
parámetro a AMERICA
:
ALTER SESSION SET NLS_TERRITORY = 'AMERICA';
SELECT
SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789 +04:00')
FROM DUAL;
Resultado:
25-AUG-35 06.30.45.123456789 AM
Cambiar este parámetro establece implícitamente el NLS_TIMESTAMP_FORMAT
al formato para AMERICA
.
Consulte Cómo cambiar el formato de fecha de su sesión para obtener más información y ejemplos.
Nombre de región de zona horaria
Como alternativa, puede usar el nombre de la región de la zona horaria en lugar del desplazamiento de la zona horaria.
Ejemplo:
SELECT
SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789 Asia/Bangkok')
FROM DUAL;
Resultado:
25-AUG-35 03.30.45.123456789 AM
Zona horaria predeterminada
Si no se especifica una zona horaria, la fecha y hora se asocia con la zona horaria de la sesión.
Ejemplo:
SELECT SYS_EXTRACT_UTC(TIMESTAMP '2035-08-25 10:30:45.123456789')
FROM DUAL;
Resultado:
25-AUG-35 12.30.45.123456789 AM
Puede verificar la zona horaria de la sesión actual con SESSIONTIMEZONE
función:
SELECT SESSIONTIMEZONE
FROM DUAL;
Resultado:
Australia/Brisbane
Consulte 4 formas de cambiar la zona horaria en Oracle para ver ejemplos de cómo cambiar esto.
Argumentos nulos
Pasando null
da como resultado un error:
SELECT SYS_EXTRACT_UTC(null)
FROM DUAL;
Resultado:
Error starting at line : 1 in command - SELECT SYS_EXTRACT_UTC(null) FROM DUAL Error at Command Line : 1 Column : 24 Error report - SQL Error: ORA-30175: invalid type given for an argument 30175. 00000 - "invalid type given for an argument" *Cause: There is an argument with an invalid type in the argument list. *Action: Use the correct type wrapper for the argument.
Argumento faltante
Llamar a la función con el número incorrecto de argumentos, o sin pasar ningún argumento, genera un error:
SELECT SYS_EXTRACT_UTC()
FROM DUAL;
Resultado:
Error starting at line : 1 in command - SELECT SYS_EXTRACT_UTC() 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: