Fonction AGE( )

Renvoie l'antériorité, en jours, d'une date donnée par rapport à une date de référence spécifiée ou à la date actuelle du système d'exploitation.

Syntaxe

AGE(date/DateHeure/chaîne_de_caractères <;date_référence>)

Paramètres

Nom Type Description
date/DateHeure/chaîne_de_caractères

caractère

DateHeure

Le champ, l'expression, ou la valeur littérale à classer par antériorité.
date_référence

optionnel

caractère

DateHeure

Le champ, l'expression, ou la valeur littérale par rapport auxquels date/DateHeure/chaîne_de_caractères est comparé. Si ce paramètre est ignoré, la date actuelle du système d'exploitation est utilisée comme date de référence.

Remarque

date/DateHeure/chaîne_de_caractères et date_référence peut accepter une valeur de type DateHeure, mais la portion de la valeur correspondant à l'heure sera ignorée. Vous ne pouvez pas utiliser AGE( ) avec les valeurs correspondant à l'heure uniquement.

Sortie

Numérique.

Exemples

Exemples basiques

Aucune date de référence

Renvoie le nombre de jours entre le 31 décembre 2014 et la date actuelle :

  • Si une valeur positive est renvoyée, elle est égale au nombre de jours dans le passé où le 31 décembre 2014 a eu lieu
  • Si une valeur négative est renvoyée, elle est égale au nombre de jours dans le futur où le 31 décembre 2014 aura eu lieu
  • Si 0 est renvoyé, la date actuelle est le 31 décembre 2014
AGE(`20141231`)

Renvoie le nombre de jours entre chaque date dans le champ Date_échéance et la date actuelle :

AGE(Date_échéance)

Mélanger les types de données

Renvoie 518, le nombre de jours entre les deux dates spécifiées.

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

À l'aide des dates de référence et des champs

Renvoie le nombre de jours entre chaque date dans le champ Date_échéance et la date de référence du 31 décembre 2014 :

  • Les dates antérieures à la date de référence renvoient une valeur positive égale au nombre de jours avant le jour de référence auquel elles ont lieu
  • Les dates postérieures à la date de référence renvoient une valeur négative égale au nombre de jours après le jour de référence auquel elles ont lieu
AGE(Date_échéance ; `20141231`)

Renvoie le nombre de jours entre le 31 décembre 2014 et chaque date dans le champ Date_échéance. Les résultats sont les mêmes que dans l'exemple immédiatement ci-dessus, mais le signe des valeurs renvoyées (positif ou négatif) est inversé :

AGE(`20141231`; Date_échéance)

Comparaison de dates dans des champs

Renvoie le nombre de jours entre chaque date dans le champ Date_paiement et une date correspondante dans le champ Date_échéance :

  • Les dates de paiement antérieures aux dates d'échéance renvoient une valeur positive, indiquant un paiement avant l'échéance
  • Les dates de paiement postérieures aux dates d'échéance renvoient une valeur négative, indiquant un paiement après l'échéance
AGE(Date_paiement; Date_échéance)

Renvoie le nombre de jours entre chaque date dans le champ Date_paiement et une date correspondante dans le champ Date_échéance plus une période de grâce de 15 jours.

  • Les dates de paiement antérieures aux dates d'échéance, ou jusqu'à 15 jours après la date d'échéance, renvoient une valeur positive
  • Les dates de paiement postérieures de plus de 15 jours aux dates d'échéance renvoient une valeur négative, indiquant un paiement après l'échéance en dehors de la période de grâce
AGE(Date_paiement; Date_échéance+15)

Exemples avancés

Extraction des paiements en retard

Extraire le nom, le montant et la date de facture de chaque enregistrement dont la facture présente une antériorité supérieure à 180 jours, selon une date de référence placée au 31 décembre 2014 :

EXTRACT FIELDS Nom Montant Date_facture TO "En_retard" IF AGE(Date_facture;`20141231`) > 180

Remarques

Fonctionnement

La fonction AGE( ) calcule le nombre de jours séparant deux dates.

Quand utiliser la fonction AGE( )

Utilisez AGE( ) pour comparer deux dates afin de déterminer les comptes en retard, effectuer des analyses de soldes cumulés ou effectuer n'importe quelle tâche demandant le nombre de jours écoulés entre deux dates.

Valeurs renvoyées négatives

Une valeur négative est renvoyée si la date spécifiée pour date/DateHeure/chaîne_de_caractères est plus récente que la date indiquée comme date_référence ou que la date du système d'exploitation, si aucune date_référence n'est spécifiée.

Utilisation d'un champ pour la date de référence

Contrairement à la commande AGE, qui requiert une valeur de date littérale pour la date de référence, la fonction AGE( ) vous permet d'utiliser également un champ pour la date de référence.

Par exemple :

AGE(Date_paiement; Date_échéance)

Utiliser la fonction AGE( ) de cette manière est équivalent à calculer la différence entre deux champs de date en les soustrayant dans une expression.

Par exemple :

Date_paiement – Date_échéance

Informations sur les paramètres

Un champ de DateHeure indiqué pour date/DateHeure/chaîne ou date_référence peut utiliser n'importe quel format de date ou DateHeure, tant que la définition de champ définit correctement le format.

Spécification d'une valeur littérale de date ou de DateHeure

Lorsque vous indiquez une valeur littérale de date ou de DateHeure pour date/DateHeure/chaîne ou date_référence, vous êtes limité aux formats de la table ci-dessous, et vous devez entourer la valeur de guillemets inversés, ou de guillemets simples ou doubles – par exemple, `20141231` ou "20141231".

N'utilisez aucun séparateur comme les barres obliques (/) ou les deux points (:) entre les composants individuels des dates ou des heures. Les deux-points sont autorisés dans les valeurs heure de type caractère.

  • Valeurs DateHeure : vous pouvez utiliser n'importe laquelle des combinaisons de formats de date, de séparateur et d'heure répertoriées dans le tableau ci-dessous. La date doit précéder l'heure, et vous devez utiliser un séparateur entre les deux. Les séparateurs valides sont un espace unique, la lettre « t » ou la lettre « T ».

    Exemples de formats

    Exemples de valeurs littérales

    AAAAMMJJ

    `20141231`

    "20141231"

    AAMMJJ

    `141231`

    "141231"

    AAAAMMJJ hhmmss

    `20141231 235959`

    "20141231 235959"

    AAMMJJthhmm

    `141231t2359`

    "141231t2359"

    AAAAMMJJThh

    `20141231T23`

    "20141231T23"

    AAAAMMJJ hhmmss+/-hhmm

    (décalage UTC)

    `20141231 235959-0500`

    "20141231 235959-0500"

    AAMMJJ hhmm+/-hh

    (décalage UTC)

    `141231 2359+01`

    "141231 2359+01"

    Remarque

    N'utilisez pas hh seul dans le format d'heure principal avec des données qui ont un décalage UTC. Par exemple, évitez : hh+hhmm. Il se peut que les résultats ne soient pas fiables.

     

Guide de création de scripts ACL 14.1