Función AGE( )

Devuelve la antigüedad de una fecha (en días) comparada con una fecha de corte especificada o con la fecha actual del sistema operativo.

Sintaxis

AGE(fecha/fechahora/cadena <;fecha_de_corte>)

Parámetros

Nombre Tipo Descripción
fecha/fechahora/cadena

carácter

fechahora

El campo, expresión o valor literal para calcular la antigüedad
fecha_de_corte

opcional

carácter

fechahora

El campo, la expresión o el valor literal con el cual se comparan la fecha /fechahora/cadena. Si se omite, se usará la fecha del sistema operativo actual como la fecha de corte.

Nota

Tanto fecha/fechahora/cadena como fecha_de_corte pueden aceptar un valor de fechahora, pero la porción hora del valor se ignora. No puede utilizar AGE( ) solamente con valores de horas.

Salida

Numérico.

Ejemplos

Ejemplos básicos

Sin fecha de corte

Devuelve la cantidad de días entre el 31 de diciembre de 2014 y la fecha actual:

  • Si se devuelve un valor positivo, es igual a la cantidad de días que transcurrieron desde el 31 de diciembre 2014.
  • Si se devuelve un valor negativo, es igual a la cantidad de días que faltan para el 31 de diciembre 2014.
  • Si se devuelve 0, 31 de diciembre 2014 es la fecha actual.
AGE(`20141231`)

Devuelve la cantidad de días entre cada fecha en el campo Fecha_de_vencimiento y la fecha actual:

AGE(Fecha_de_vencimiento)

Mezcla de tipos de datos

Devuelve 518, la cantidad de días entre las dos fechas especificadas:

AGE(`20130731`;`20141231`)
AGE("20130731";"20141231")
AGE(`20130731`;"20141231")
AGE(`20130731 235959`;`20141231`)

Uso de fechas de corte y campos

Devuelve la cantidad de días entre cada fecha en el campo Fecha_de_vencimiento y la fecha de corte del 31 de diciembre de 2014:

  • Las fechas anteriores a la fecha de corte devuelven un valor positivo igual a la cantidad de días previos a la fecha de corte en que tienen lugar.
  • Las fechas posteriores a la fecha de corte devuelven un valor negativo igual al número de días posteriores a la fecha de corte en que ocurrirán
AGE(Fecha_de_vencimiento; `20141231`)

Devuelve la cantidad de días entre el 31 de diciembre de 2014 y cada fecha en el campo Fecha_de_vencimiento. Los resultados son los mismos que en el ejemplo que antecede, pero el signo de los valores devueltos (positivo o negativo) se invierte:

AGE(`20141231`; Fecha_de_vencimiento)

Comparación de fechas en los campos

Devuelve la cantidad de días entre cada fecha en el campo Fecha_de_pago y la fecha correspondiente en el campo Fecha_de_vencimiento:

  • Las fechas de pago anteriores a las fecha de vencimiento devuelven un valor positivo, lo cual indica el pago puntual
  • Las fechas de pago posteriores a la fecha de vencimiento devuelven un valor negativo, lo cual indica un pago fuera de plazo
AGE(Fecha_de_pago; Fecha_de_vencimiento)

Devuelve la cantidad de días entre cada fecha en el campo Fecha_de_pago y la fecha correspondiente en el campo Fecha_de_vencimiento más un período de gracia de 15 días.

  • Las fechas de pago anteriores a las fechas de vencimiento o hasta 15 días después de las fechas de vencimiento devuelven un valor positivo.
  • Las fechas de pago posteriores a los 15 días luego de las fechas de vencimiento devuelven un valor negativo, lo cual indica un pago fuera de plazo y del período de gracia
AGE(Fecha_de_pago; Fecha_de_vencimiento+15)

Ejemplos avanzados

Extraer pagos vencidos

Extraer el nombre, el importe y la fecha de la factura para cada registro donde la antigüedad de la factura es mayor a 180 días, sobre la base de una fecha de corte del 31 de diciembre de 2014:

EXTRACT FIELDS Nombre Importe Fecha_de_factura TO "Vencido" IF AGE(Fecha_de_factura; `20141231`) > 180

Observaciones

Cómo funciona

La función AGE( ) función calcula la cantidad de días entre dos fechas.

Cuándo usar AGE( )

Utilice AGE( ) para comparar dos fechas a fin de determinar las cuentas vencidas, realizar análisis de antigüedad de los saldos o para realizar cualquier tarea que requiera conocer la cantidad de días que transcurrieron entre dos fechas.

Devolución de valores negativos

Se devuelve un valor negativo si la fecha que se especificó para fecha/fechahora/cadena es más reciente que la fecha que se especificó para fecha_de_corte, o más reciente que la fecha del sistema operativo si no se especificó fecha_de_corte.

Uso de un campo para la fecha de corte

A diferencia del comando AGE, que requiere un valor literal de fecha para la fecha de corte, la función AGE( ) le permite utilizar también un campo para la fecha de corte.

Por ejemplo:

AGE(Fecha_de_pago; Fecha_de_vencimiento)

El uso de la función AGE( ) de esta manera equivale a calcular la diferencia entre dos campos de fecha restándolos en una expresión.

Por ejemplo:

Fecha_de_pago – Fecha_de_vencimiento

Detalles del parámetro

Un campo de fechahora especificado para fecha/fechahora/cadena o fecha_de_corte puede utilizar cualquier formato de fecha o fechahora, siempre que la definición del campo establezca correctamente el formato.

Especificar un valor de fechahora o fecha literal

Al especificar un valor literal de fecha o fechahora para fecha/fechahora/cadena o fecha_de_corte, solo puede utilizar los formatos de la siguiente tabla y debe encerrar el valor entre acentos graves o comillas simples o dobles; por ejemplo, `20141231` o "20141231".

No utilice ningún separador, como barras (/) o dos puntos (:), entre los componentes individuales de fechas u horas. Se permite el uso de dos puntos en valores de hora en caracteres.

  • Valores de fechahora: puede utilizar cualquier combinación de formatos de fecha, separador y hora de la siguiente tabla. La fecha debe preceder a la hora y se debe utilizar un separador entre las dos. Los separadores válidos son un espacio en blanco, la letra 't' o la letra 'T'.

    Formatos de ejemplo

    Valores literales de ejemplo

    AAAAMMDD

    `20141231`

    "20141231"

    AAMMDD

    `141231`

    "141231"

    AAAAMMDD hhmmss

    `20141231 235959`

    "20141231 235959"

    AAMMDDthhmm

    `141231t2359`

    "141231t2359"

    AAAAMMDDThh

    `20141231T23`

    "20141231T23"

    AAAAMMDD hhmmss+/-hhmm

    (desplazamiento de UTC)

    `20141231 235959-0500`

    "20141231 235959-0500"

    AAMMDD hhmm+/-hh

    (desplazamiento de UTC)

    `141231 2359+01`

    "141231 2359+01"

    Nota

    No use solo hh en el formato de la hora principal con datos que tienen un desplazamiento del UTC. Por ejemplo, evite: hh+hhmm. Los resultados pueden no ser confiables.

     

Guía de creación de scripts de ACL 14.1