IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ SASConsultez toutes les FAQ

Nombre d'auteurs : 14, nombre de questions : 232, dernière mise à jour : 20 décembre 2012 

 
OuvrirSommaireSAS BASEDates

En appelant la fonction date() : tout simplement.

 
Sélectionnez

DATA base;
ATTRIB variable FORMAT=DDMMYY10. LABEL="Ma date";
variable=date();
RUN;
PROC PRINT DATA=base LABEL;
RUN;
Créé le 27 mai 2008  par rastoix

Pour récupérer la date, il suffit d'utiliser la fonction du module Base SAS : DATEPART.
Pour récupérer l'heure, il suffit d'utiliser la fonction du module Base SAS : TIMEPART.

 
Sélectionnez

data _null_;
variable = '30JUL1970:20:30:00'dt;
date = datepart(variable);
heure = timepart(variable);
put "la date est " date ddmmyy10.;
put "l'heure est " heure time5.;
run;

Le journal (log) indique :
la date est 30/07/1970
l'heure est 20:30

Créé le 10 octobre 2008  par SAS

Vous devez exécuter une Proc Format avec une instruction Picture suivie de l'option datatype=date ou datetime.
L'ajout de caractères spéciaux dans le type de format permet ensuite de définir l'affichage souhaité avec le jour, le mois et l'année.

Exemple :

 
Sélectionnez

proc format;
  picture ddmmyyyy other='
/%0m/%0Y' (datatype=date);
  picture dtddmmyyyy other='
/%0m/%0Y' (datatype=datetime);
run;
 
data _null_;
  dt='18dec2005 12:34:56'dt;
  put dt dtddmmyyyy.;
  d='14feb2005'd;
  put d ddmmyyyy.;
run; 

Résultat dans la fenêtre journal :
18/12/2005
14/02/2005

Créé le 10 octobre 2008  par SAS

La fonction WEEKDAY retourne le numéro du jour de la semaine d'une date SAS, selon le calendrier anglo-saxon où le dimanche est le 1er jour de la semaine. Il faut donc retirer un jour pour retrouver le calendrier usuel conforme à la norme ISA 8601.

En voici une illustration :

 
Sélectionnez

data Datum;
      attrib date format= weekdate17. informat=ddmmyy10. ;
 
      num_day=weekday (date); 
      If num_day = 1 then num_day = 7;
      else num_day=num_day -1;
 
      input date : ddmmyy10.;
 
cards;
03.01.2011
04.01.2011
05.01.2011
06.01.2011
07.01.2011
08.01.2011
09.01.2011
;
run;
 
proc print noobs;
run;
Mis à jour le 15 novembre 2011  par SAS

SAS9 propose plusieurs méthodes pour déterminer le numéro de la semaine en fonction d'une date SAS :

  • la fonction WEEK ;
  • les formats WEEKU, WEEKV, WEEKW.

Si vous utilisez SAS 8.2 ou une version antérieure, vous pouvez utiliser l'une des méthodes suivantes.

Ce programme calcule le numéro de semaine de la date courante, sachant qu'une semaine commence le dimanche (norme US) :

 
Sélectionnez

data _null_;
  Attrib date length=3. label='Date' format=date7. ;
  Attrib semaine length=3. label=' de semaine';
 
  madate = TODAY();
  semaine = INTCK('week', INTNX('year',madate,0),madate);
  put semaine =;
run;

Ce programme calcule le numéro de semaine de la date courante, sachant qu'une semaine commence le lundi :

 
Sélectionnez

data _null_;
 
  Attrib date length=3. label='Date' format=date7. ;
  Attrib semaine length=3. label=' de semaine';
 
  date = TODAY();
  semaine=-1;
  cpt=0;
  do until (semaine>0);
    semaine=int((7*int((date+3156192)/7)+10 - mdy(1,1,year(date)+1 - cpt) - 3156192)/7);
    cpt+1;
  end;
  output;
  put semaine= ;
run;
Créé le 7 novembre 2011  par SAS
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2011 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.