Funciones de agregado de Fecha en Oracle

Operan sobre literales de fecha y hora, campos date, timestamp e Interval.

Algunas de ellas han sido creadas para valores date pero también admiten timestamp.

Los literales de fecha:

  • Van entre comillas simples.
  • Un literal de fecha ANSI no contiene ninguna parte de hora y debe tener el formato: ‘AAAA-MM-DD’.
  • Para indicar solo una fecha en Oracle: DATE ‘AAAA-MM-DD’ en consultas y ‘AAAA-MM-DD’ directamente en inserciones.
  • El formato que reconoce por defecto es ‘día- Abreviatura_mes-año_con_4_digitos’. Por ejemplo: ’01-JAN-2003’
  • La otra forma de especificar un “datetime” es usar la función TO_DATE, así:

TO_DATE (literal_de_tiempo, cadena_de_formato)

CURRENT_DATE – Devuelve la fecha actual.

SELECT 
CURRENT_DATE 
FROM 
DUAL;

NEXT_DAY (d ,wd) – Devuelve la fecha mas cercana a D cuyo dia de la semana es WD (días de la semana).

SELECT 
NEXT_DAY(CURRENT_DATE,'sábado') 
FROM 
DUAL;

CURRENT_TIMESTAMP – Devuelve la fecha y hora actual.

SELECT 
CURRENT_TIMESTAMP 
FROM 
DUAL;

ADD_MONTHS (d, n) – Devuelve la fecha d mas n meses.

SELECT 
ADD_MONTHS(TO_DATE('31/12/2021','DD/MM/YYYY'),2) 
FROM 
DUAL;

LAST_DAY (d) – Devuelve el ultimo dia de la fecha d

SELECT LAST_DAY(CURRENT_DATE) FROM DUAL;

MONTHS_BETWEEN (d1, d2) – Devuelve la diferencia de meses entre la fecha d1 y d2. Si d1 es mas antigua que d2 el resultado es positivo, sino negativo.

SELECT 
MONTHS_BETWEEN(TO_DATE('31/12/2021','DD/MM/YYYY'),TO_DATE(CURRENT_DATE)) 
FROM 
DUAL;