En este capítulo, discutiremos la fecha y la hora en PL / SQL. Hay dos clases de tipos de datos en PL / SQL relacionadas con la fecha y la hora:
Tipos de datos de fecha y hora:
Tipos de datos de intervalo:
Ambos fecha y hora y intervalo los tipos de datos consisten en campos… Los valores de estos campos definen el valor del tipo de datos. La siguiente tabla enumera los campos y sus posibles valores para la fecha, la hora y los intervalos.
| Nombre del campo | Valores válidos de fecha y hora | Valores de intervalo permitidos |
|---|---|---|
| AÑO | -4712 a 9999 (excepto año 0) | Cualquier número entero distinto de cero |
| MES | 01-12 | 0 a 11 |
| DÍA | 01–31 (limitado a MES y AÑO de acuerdo con las reglas de calendario de ese país) | Cualquier número entero distinto de cero |
| HORA | 00-23 | 0 hasta 23 |
| MINUTO | 00-59 | 0 hasta 59 |
| SEGUNDO |
00 a 59,9 (n), donde 9 (n) es una fracción de segundo de precisión. La parte 9 (n) no se aplica a DATE. |
0 a 59,9 (n), donde 9 (n) es una fracción de segundo de precisión. |
| TIMEZONE_HOUR |
-12 a 14 (el rango incluye el horario de verano) No aplicable para DATE o TIMESTAMP. |
Impropio |
| TIMEZONE_MINUTE |
00-59 No aplicable para DATE o TIMESTAMP. |
Impropio |
| TIMEZONE_REGION | No aplicable para DATE o TIMESTAMP. | Impropio |
| TIMEZONE_ABBR | No aplicable para DATE o TIMESTAMP. | Impropio |
A continuación se muestran los tipos de datos de fecha y hora:
Almacena información de fecha y hora tanto en caracteres como en tipos de datos numéricos. Consiste en información sobre siglo, año, mes, fecha, horas, minutos y segundos. Esto se indica como:
Es una extensión del tipo de datos DATE. Almacena el año, mes y día del tipo de datos DATE, así como los valores de hora, minuto y segundo. Esto es útil para almacenar valores de tiempo precisos.
Es una variante de TIMESTAMP que incluye el nombre de la región de la zona horaria o el desplazamiento de la zona horaria en su valor. El desplazamiento de zona horaria es la diferencia (en horas y minutos) entre la hora local y la hora media de Greenwich. Este tipo de datos es útil para recopilar y evaluar información de fechas por región geográfica.
Esta es otra variante de TIMESTAMP que incluye un desplazamiento de zona horaria.
La siguiente tabla presenta las funciones de fecha y hora (donde x es la fecha y hora):
| S. No | Nombre y descripción de la función |
|---|---|
| uno |
AGREGAR_MESES (x, y); Agrega y meses antes X… |
| 2 |
ÚLTIMO_DÍA (x); Devuelve el último día del mes. |
| 3 |
MONTH_BETWEEN (x, y); Devuelve el número de meses entre X y y… |
| cuatro |
NEXT_DAY (x, día); Devuelve la fecha y hora del próximo día después X… |
| cinco |
NUEVO TIEMPO; Devuelve el valor de hora / día de la zona horaria especificada por el usuario. |
| 6 |
REDONDO (x [, unit]); Rondas X… |
| 7 |
SYSDATE (); Devuelve la fecha y hora actual. |
| 8 |
TRONCO (x [, unit]); Trunca X… |
Funciones de marca de tiempo (donde x tiene un valor de marca de tiempo) –
| S. No | Nombre y descripción de la función |
|---|---|
| uno |
FECHA Y HORA ACTUAL (); Devuelve un TIMESTAMP WITH TIME ZONE que contiene la hora de la sesión actual junto con la zona horaria de la sesión. |
| 2 |
EXTRACTO ({AÑO | MES | DÍA | HORA | MINUTO | SEGUNDO} | {TIMEZONE_HOUR | TIMEZONE_MINUTE} | {TIMEZONE_REGION |} TIMEZONE_ABBR) DESDE x) Recupera y devuelve el año, mes, día, hora, minuto, segundo o zona horaria de X… |
| 3 |
FROM_TZ (x, zona horaria); Convierte TIMESTAMP x y la zona horaria especificada por time_zone en TIMESTAMP WITH TIMEZONE. |
| cuatro |
LOCALTIMESTAMP (); Devuelve un TIMESTAMP que contiene la hora local en la zona horaria de la sesión. |
| cinco |
SYSTIMESTAMP (); Devuelve un TIMESTAMP WITH TIME ZONE que contiene la hora actual de la base de datos junto con la zona horaria de la base de datos. |
| 6 |
SYS_EXTRACT_UTC (x); Convierte TIMESTAMP WITH TIMEZONE x en TIMESTAMP que contiene la fecha y hora UTC. |
| 7 |
TO_TIMESTAMP (x, [format]); Convierte la cadena x en TIMESTAMP. |
| 8 |
TO_TIMESTAMP_TZ (x, [format]); Convierte la cadena x en TIMESTAMP WITH TIMEZONE. |
Los siguientes fragmentos de código ilustran el uso de las funciones anteriores:
Ejemplo 1
SELECT SYSDATE FROM DUAL;
Salida –
08/31/2012 5:25:34 PM
Ejemplo 2
SELECT TO_CHAR(CURRENT_DATE, 'DD-MM-YYYY HH:MI:SS') FROM DUAL;
Salida –
31-08-2012 05:26:14
Ejemplo 3
SELECT ADD_MONTHS(SYSDATE, 5) FROM DUAL;
Salida –
01/31/2013 5:26:31 PM
Ejemplo 4
SELECT LOCALTIMESTAMP FROM DUAL;
Salida –
8/31/2012 5:26:55.347000 PM
A continuación se muestran los tipos de datos de intervalo:
AÑO A MES: almacena un período de tiempo utilizando los campos de fecha y hora AÑO y MES.
INTERVALO DÍA A SEGUNDO – Almacena un período de tiempo en días, horas, minutos y segundos.
| S. No | Nombre y descripción de la función |
|---|---|
| uno |
NUMTODSINTERVAL (x; unit_interval); Convierte el número x en INTERVALO DEL SEGUNDO DÍA. |
| 2 |
NUMTOYMINTERVAL (x; unit_interval); Convierte el número x en INTERVALO DE AÑO A MES. |
| 3 |
TO_DSINTERVAL (x); Convierte la cadena x en INTERVALO DÍA POR SEGUNDO. |
| cuatro |
TO_YMINTERVAL (x); Convierte la cadena x en INTERVALO DE AÑO A MES. |
🚫