La función NEW_TIME en Oracle es ideal para transformar una fecha de una zona horaria a otra de manera sencilla y eficiente. Esta función es especialmente útil en aplicaciones globales donde los usuarios operan en distintos husos horarios y se necesita calcular o mostrar fechas ajustadas al contexto de cada región.
La función NEW_TIME toma como entrada una fecha en formato DATE
junto con dos abreviaturas de zonas horarias. Estas pueden representar tanto estándares como el horario de verano de ciertas regiones (por ejemplo, ‘PST’ para Hora Estándar del Pacífico o ‘EST’ para Hora Estándar del Este). Como resultado, devuelve la fecha convertida al huso horario deseado, facilitando tareas como la programación de eventos o la sincronización de sistemas.
Primero, explicaré la sintaxis básica de esta función para que puedas implementarla fácilmente en consultas SQL. Luego, mostraré ejemplos prácticos que demuestran cómo convertir horarios entre diferentes zonas, ajustando datos de servidores centrales a la zona local de los usuarios.
Si quieres explorar más detalles y ver ejemplos avanzados, puedes consultar la documentación oficial de ORACLE sobre NEW_TIME.
Sintaxis
Escribe la siguiente sintaxis para utilizar la función NEW_TIME en Oracle:
NEW_TIME(fecha, zona_horaria_origen, zona_horaria_destino);
En la sintaxis anterior, new_time admite tres parametros:
- fecha: campo de fecha o fecha escrita que se quiere convertir.
- zona_horaria_origen: indica que zona horaria tiene el parámetro anterior.
- zona_horaria_destino: indica la zona horaria a la que se va convertir.
Por defecto la fecha no se muestra con la hora al no ser que lo hayas modificado, sino es tu caso, ejecuta antes esta sentencia para poder mostrar la hora.
ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-YYYY HH24:MI:SS';
Ejemplo
En el siguiente ejemplo puedes comprobar como cambiarnos la hora de origen en formato del pacifico a la hora estándar del este:
SELECT NEW_TIME( TO_DATE( '09-26-1986 15:30:00', 'MM-DD-YYYY HH24:MI:SS' ), 'PST', 'EST' ) NUEVA_FECHA FROM DUAL;

Zonas horarias disponibles
Las zonas horarias disponibles para la función new_time son las siguientes:
Zona Horaria | Descripción |
---|---|
ADT | Hora de verano del Atlántico |
AST | Hora estándar del Atlántico |
BDT | Hora de verano de Bering |
BST | Hora estándar de Bering |
CDT | Hora central de verano |
CST | Horario de la zona central |
EDT | Hora de verano del este |
EST | Hora estándar del este |
GMT | Hora de Greenwich |
HDT | Hora de verano de Alaska-Hawái |
HST | Hora estándar de Alaska-Hawái |
MDT | Horario de verano de montaña |
MST | Hora estándar de la montaña |
NST | Hora estándar de Terranova |
PDT | Hora de verano del Pacífico |
PST | Hora estándar del Pacífico |
YDT | Hora de verano del Yukón |
YST | Hora estándar del Yukón |