Archive for the ‘Les Formats’ Category

h1

Pourquoi datetime18. n’affiche pas l’année avec 4 chiffres

mars 20, 2023

filename demo "&xxproject./reporting/demo.txt";

data _null_;
    file demo;
    dt='20MAR2023:09:07:01'dt;
    put 'DATETIME.'    @14 dt  datetime.;
    put 'DATETIME16.'  @14 dt datetime16.;
    put 'DATETIME18.'  @14 dt datetime18.;
    put 'DATETIME18.1' @14 dt datetime18.1;
    put 'DATETIME19.'  @14 dt datetime19.;
run;

filename demo;

Lorsqu’on passe d’une largeur de libellé de format de 16 (valeur par défaut) à 18, on permet en fait l’affichage des dixièmes de secondes et non l’affichage d’une année à 4 chiffres.

On notera néanmoins qu’en l’absence de demande d’affiche des dixièmes , des blancs d’en-tête sont présents.

h1

Entrer une date avec l’informat ANYDTDTE

juin 6, 2010

Découvrez le cours de novembre 2022 : Les fonctions put et input – un sujet épineux

Aujourd’hui j’aimerais vous présenter un informat destiné aux dates qui est apparu avec la version 9 de SAS : ANYDTDTE.

La manière dont est écrite une date est très variable et le nombre d’informat pour pourvoir entrer ces dates dans une table SAS est aussi large que le nombre de manière d’écrire une date. Du coup, difficile de se souvenir du nom de chacun des informats lorsqu’on rencontre une structure différente de son habitude de manière occasionnelle. Le passage par la documentation de SAS est quasiment obligé.

L’informat ANYDTDTE regroupe plusieurs informats sous sa coupole pour vous faciliter ce travail de mémorisation. Illustration.

1. Présentation de trois informats : DATE9., DDMMYY10. et ANYDTDTE.

De manière classique un informat reconnait une structure particulière.

  • L’informat DATE9 reconnait une date écrite sous la forme DDMMMYYYY (15APR2007).
  • L’informat DDMMYY10. reconnait les dates de la forme DD/MM/YYYY (15/04/2007).

L’informat ANYDTDTE vous permettra de retrouver les deux structures et plus encore.

2. Un exemple

Dans cet exemple la date est écrite de deux manières différentes. Deux choix s’offrent à vous :

  • informat date1 ddmmyy10. date2 date9.;
  • informat date1 date2 anydtdte.;

Dans le premier cas, vous identifiez de manière précise la structure de chacune des dates et appliquez l’informat de votre choix.

Dans le second cas, vous laissez SAS identifiez la structure des deux dates parmi une liste de 8 informats : DATE, DATETIME, DDMMYY, JULIAN, MMDDYY, MONYY, TIME, YYMMDD ou YYQ.

data event;
informat date1 date2 anydtdte.;
*informat date1 ddmmyy10. date2 date9.;
format date1 date2 date9.;
input event date1 date2;
datalines;
1 15/04/2007 15APR2007
1 20/10/2007 20OCT2007
3 11/02/2007 11FEB2007
4 14/11/2007 14NOV2007
8 15/02/2007 15FEB2007
9 28/01/2007 28JAN2007
17 15/01/2007 15JAN2007
17 30/04/2007 30APR2007
19 12/08/2007 12AUG2007
19 25/08/2007 25AUG2007
20 21/02/2007 21FEB2007
;
run;

proc print data=event;
run;

Lecture complémentaire

Lecture complémentaire sur la documentation en ligne de SAS

SAS Online Doc >Base SAS > SAS Language Reference : Dictionary > Dictionary of Language Elements > Informats

  • ANYDTDTEw. Informat
  • DDMMYYw. Informat
  • DATEw. Informat

Aller plus loin

Découvrez le cours de novembre 2022 : Les fonctions put et input – un sujet épineux