Domanda

Come posso convertire una data SAS come " 30JUL2009 " d nel formato YYYYMMDD (ad es. 20090730)?

Ad esempio:

data _null_;
  format test ?????;
  test=today();
  put test=;
run;

Mi darebbe " test = 20090730 " nel registro ...

È stato utile?

Soluzione

data _null_;
    format test yymmddn8.;
    test=today();
    put test=;
run;

YYMMDDxw. documentazione

Altri suggerimenti

%let expectdate1=%sysfunc(putn(%eval(%sysfunc(today())-1),yymmddn8.));

Si desidera utilizzare il formato yymmddn8. 'N' significa nessun separatore .

Per http://support.sas.com/kb/24/610.html puoi specificare B per il bianco, C per i due punti, D per il trattino, N per nessun separatore, P per punto o S per barra.

ecco come l'ho fatto in macro, ma sicuramente deve esserci un formato ?? !!!

%let today=%sysfunc(compress(%sysfunc(today(),yymmddd10.),'-'));

è strano - INFORMAT yymmdd8. dà il risultato AAAAMMGG, mentre FORMATO yymmdd8. dà un risultato AA-MM-GG !!

Ce n'è uno che dovrebbe fare anche il trucco

%let today=%sysfunc(today(),yymmddn8.);
%put &today.;

Tutto sul link qui sotto

https://communities.sas.com/thread/60111

Puoi visualizzare tutti i formati di data e ora nella scheda Guida quando inserisci "data" nella scheda Indice e quindi selezioni "formati di data e ora"

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top