HADD : Incrémenter une valeur date-heure

Comment :

Langages disponibles : reporting, Maintain

La fonction HADD décale une valeur de champ date-heure d'un certain nombre d'unités.


Haut de page

x
Syntaxe : Décaler une valeur date-heure
HADD(datetime, 'component', increment, length, output)

où :

datetime

Date-heure

est la valeur date-heure à incrémenter, le nom du champ date-heure qui contient la valeur, ou une expression qui renvoie celle-ci.

component

Alphanumérique

est le nom du composant à incrémenter, entouré par des guillemets simples. Pour consulter une liste d'agruments valides, référez-vous à Arguments pour l'utilisation avec les Fonctions Date et Heure..

Remarque : WEEKDAY n'est pas un composant valide pour HADD.

increment

Entier

est le nombre d'unités (positives ou négatives) que vous souhaitez incrémenter le composant, le nom d'un champ numérique qui contient la valeur ou une expression qui renvoie celle-ci.

length

Entier

est le nombre de caractères renvoyés. Voici les valeurs valables :

  • 8 indique une valeur date-heure qui comprend un à trois chiffres décimaux (millisecondes).
  • 10 indique une valeur date-heure qui comprend quatre à six chiffres décimaux (microsecondes).
  • 12 indique une valeur date-heure qui comprend sept à neuf chiffres décimaux millisecondes.
output

Date-heure

est le champ qui contient le résultat, ou le format de la valeur de sortie entre guillemets simples. Ce champ doit être au format date-heure (type de données H).



Exemple : Incrémenter un composant de mois à un champ date-heure (Reporting)

DDPH ajoute deux mois pour chaque valeur dans TRANSDATE; le résultat est stocké dans ADD_MONTH. Si nécessaire, le jour est réglé de sorte qu'il est valide pour le mois résultant.

TABLE FILE VIDEOTR2
PRINT CUSTID TRANSDATE AS 'DATE-TIME' AND COMPUTE
ADD_MONTH/HYYMDS = HADD(TRANSDATE, 'MONTH', 2, 8, 'HYYMDS');
WHERE DATE EQ 2000;
END

La sortie est :

CUSTID  DATE-TIME         ADD_MONTH
------  ---------         ---------
1237    2000/02/05 03:30  2000/04/05 03:30:00
1118    2000/06/26 05:45  2000/08/26 05:45:00


Exemple : Incrémenter un composant de mois à un champ date-heure (Maintain)

HADD ajoute deux mois au champ DT1 :

MAINTAIN FILE DATETIME
FOR 1 NEXT ID DT1 INTO DTSTK
COMPUTE
NEW_DATE/HYYMDS = HADD(DTSTK.DT1, 'MONTH', 2,10, NEW_DATE);
TYPE "DT1 IS: <DTSTK(1).DT1 "
TYPE "NEW_DATE IS: <NEW_DATE "

Le résultat est :

DT1 IS: 2000/1/1 02:57:25
NEW_DATE IS: 2000/3/1 02:57:25
TRANSACTIONS: COMMITS = 1 ROLLBACKS = 0
SEGMENTS : INCLUDED = 0 UPDATED = 0 DELETED = 0

WebFOCUS