En Oracle Database, el NEW_TIME()
La función convierte la fecha de una zona horaria específica a otra zona horaria específica y devuelve el resultado.
Sintaxis
La sintaxis es así:
NEW_TIME(date, timezone1, timezone2)
Entonces, la función devuelve la fecha y la hora en la zona horaria timezone2
fecha y hora en la zona horaria timezone1
son date
.
Tenga en cuenta que antes de usar esta función, deberá configurar el NLS_DATE_FORMAT
parámetro para mostrar el tiempo de 24 horas.
Los argumentos timezone1
y timezone2
puede ser cualquiera de estas cadenas de texto:
AST o ADT | Hora estándar del Atlántico o de verano |
BST o BDT | Estándar de Bering o horario de verano |
CST o CDT | Hora estándar central o de verano |
EST EDT | Hora estándar del este o de verano |
GMT | Hora del meridiano de Greenwich |
HST HDT | Hora estándar de Alaska-Hawái o horario de verano |
MST o MDT | Mountain Standard o Daylight Time |
NST | Hora estándar de Terranova |
PST o PDT | Hora estándar del Pacífico o de verano |
YST o YDT | Hora estándar de Yukon o de verano |
Ejemplo
He aquí un ejemplo:
ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
SELECT
NEW_TIME(
TO_DATE('2030-03-01 12:30:45', 'YYYY-MM-DD HH24:MI:SS'),
'AST',
'PST'
)
FROM DUAL;
Resultado:
2030-03-01 08:30:45
Como se mencionó, al usar esta función el NLS_DATE_FORMAT
el parámetro debe configurarse para mostrar el horario de 24 horas, así que eso es lo que hace la primera línea en el ejemplo anterior. Puede omitir esta línea si el NLS_DATE_FORMAT
de su sesión El parámetro ya utiliza el horario de 24 horas. Consulte Cómo configurar el formato de fecha de su sesión para obtener más ejemplos de cómo configurar el formato de fecha para la sesión actual.
Argumentos nulos
Si algún argumento es null
, el resultado es null
:
SET NULL 'null';
SELECT
NEW_TIME(null, 'AST', 'ADT') AS "1",
NEW_TIME(TO_DATE('2030-03-01 12:30:45', 'YYYY-MM-DD HH24:MI:SS'), null, 'ADT') AS "2",
NEW_TIME(TO_DATE('2030-03-01 12:30:45', 'YYYY-MM-DD HH24:MI:SS'), 'AST', null) AS "3"
FROM DUAL;
Resultado:
1 2 3 _______ _______ _______ null null 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
Llamando a NEW_TIME()
con el número incorrecto de argumentos, o sin pasar ningún argumento, da como resultado un error:
SELECT NEW_TIME()
FROM DUAL;
Resultado:
Error starting at line : 1 in command - SELECT NEW_TIME() 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: