Comment : |
Langages disponibles : reporting, Maintain
Les fonctions DA convertissent une date héritée en nombre de jours entre cette dernière et la date de base (31 Décembre 1899). En convertissant une date en nombre de jours, vous pouvez ajouter et soustraire des dates et calculer les intervalles entre elles, ou vous pouvez ajouter ou soustraire des nombres à partir des dates pour en obtenir des nouvelles.
Vous pouvez reconvertir le résultat en date à l'aide des fonctions DT introduites dans Fonctions DT : Convertir un nombre entier en une date.
Il existe six fonctions DA; dont chacune accepte une date dans un format différent.
function(indate, output)
où :
indique une des choses suivantes :
DADMY convertit une date au format jour-mois-année
DADYM convertit une date au format jour-année-mois.
DAMDY convertit une date au format mois-jour-année.
DAMYD convertit une date au format mois-année-jour.
DAYDM convertit une date au format année-jour-mois.
DAYMD convertit une date au format année-mois-jour.
I6xxx ou P6xxx, où xxx correspond à la fonction DAxxx que vous utilisez.
est la date héritée à convertir, ou le nom du champ qui contient la date. La date est tronquée à un nombre entier avant la conversion. Si indate est un littéral numérique, n'entrez que les deux derniers chiffres de l'année, la fonction supposera le composant siècle. Si la date est incorrecte, la fonction renvoie la valeur 0.
Entier
est le champ qui contient le résultat, ou le format de la valeur de sortie entre guillemets simples. Le format de la date renvoyée dépend de la fonction.
DAYMD convertit les champs DAT_INC et HIRE_DATE en un format indiquant le nombre de jours écoulés depuis le 31 décembre 1899 ; le nombre le plus petit est alors soustrait du plus grand :
TABLE FILE EMPLOYEE
PRINT DAT_INC AS 'RAISE DATE' AND COMPUTE
DAYS_HIRED/I8 = DAYMD(DAT_INC, 'I8') - DAYMD(HIRE_DATE, 'I8');
BY LAST_NAME BY FIRST_NAME
IF DAYS_HIRED NE 0
WHERE DEPARTMENT EQ 'PRODUCTION';
END
La sortie est :
LAST_NAME FIRST_NAME RAISE DATE DAYS_HIRED --------- ---------- ---------- ---------- IRVING JOAN 82/05/14 130 MCKNIGHT ROGER 82/05/14 101 SMITH RICHARD 82/05/14 130 STEVENS ALFRED 82/01/01 578 81/01/01 213
WebFOCUS |