PL / SQL: fecha y hora

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

Tipos de datos de fecha y hora:

  • LA FECHA
  • TIMESTAMP
  • HORA CON ZONA HORARIA
  • TIMESTAMP CON HUSO HORARIO LOCAL

Tipos de datos de intervalo:

  • INTERVALO POR MES
  • INTERVALO DÍA HASTA EL SEGUNDO

Valores de campo para tipos de datos de fecha y hora e 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

Funciones y tipos de datos de fecha y hora

A continuación se muestran los tipos de datos de fecha y hora:

LA FECHA

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:

TIMESTAMP

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.

HORA CON ZONA HORARIA

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.

TIMESTAMP CON HUSO HORARIO LOCAL

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.

Ejemplos de

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 

Tipos y funciones de datos de intervalo

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.

Funciones de intervalo

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.

🚫