DATECVT : Convertir le format d'une date

Comment :

Langages disponibles : reporting, Maintain

La fonction DATECVT convertit la valeur du champ de tout format de date standard ou format de date héritée en un format de date (décalage de la date de base), au format de date standard ou format de date héritée. Si vous fournissez un format invalide, DATECVT renvoie un zéro ou un blanc.

DATECVT désactive l'optimisation et la compilation.

Remarque : vous pouvez utiliser une attribution simple au lieu de nommer cette fonction.


Haut de page

x
Syntaxe : Convertir un format date
DATECVT(date, 'in_format', output)

où :

date

Date

est la date à convertir. Si vous fournissez une date invalide, DATECVT renvoie zéro. Lorsqu'une conversion est effectuée, la date héritée respecte les définitions des paramètres DEFCENT et YRTHRESH fournis.

in_format

Alphanumérique

est le format de date entouré par des guillemets simples. Le format peut être :

  • Un format de date non héritée (par exemple, YYMD, YQ, M, DMY, JUL).
  • Un format de date héritée (par exemple, 16YMD ou A8MDYY).
  • Un format non-date (tel que I8 ou A6). Un format non-date dans les fonctions infmt en tant que décalage de la date de base d'un champ au format YYMD (12/31/1900).
output

Alphanumérique

est le format de sortie entouré par des guillemets simples, ou un champ contenant celui-ci. Le format peut être :

  • Un format de date non héritée (par exemple, YYMD, YQ, M, DMY, JUL).
  • Un format de date héritée (par exemple, 16YMD ou A8MDYY).
  • Un format non-date (tel que I8 ou A6). Ce type de format entraîte DATECVT à convertir la date en une date complète de composant et la renvoie en un nombre entier au format fourni.


Exemple : Convertir une date au format YYMD en DMY

DATECVT convertit 19991231 à 311299; le résultat est stocké dans CONV_FIELD :

CONV_FIELD/DMY = DATECVT(19991231, 'I8YYMD', 'DMY');

ou

ONV_FIELD/DMY = DATECVT('19991231', 'A8YYMD', 'DMY');


Exemple : Convertir une date héritée en format de date (Reporting)

DATECVT convertit HIRE_DATE du format de date héritée I6YMD en YYMD :

TABLE FILE EMPLOYEE
PRINT FIRST_NAME AND HIRE_DATE AND COMPUTE
NEW_HIRE_DATE/YYMD = DATECVT(HIRE_DATE, 'I6YMD', 'YYMD');
BY LAST_NAME
WHERE DEPARTMENT EQ 'MIS';
END

La sortie est :

LAST_NAME     FIRST_NAME   HIRE_DATE  NEW_HIRE_DATE
---------     ----------   ---------  -------------
BLACKWOOD     ROSEMARIE    82/04/01   1982/04/01
CROSS         BARBARA      81/11/02   1981/11/02
GREENSPAN     MARY         82/04/01   1982/04/01
JONES         DIANE        82/05/01   1982/05/01
MCCOY         JOHN         81/07/01   1981/07/01
SMITH         MARY         81/07/01   1981/07/01

WebFOCUS