Frage

Wie konvertiere ich ein SAS-Datum wie "30JUL2009"d in YYYYMMDD Format (zB 20090730)?

So zum Beispiel:

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

Würde geben Sie mir "test = 20090730" im Protokoll ...

War es hilfreich?

Lösung

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

YYMMDDxw. Dokumentation

Andere Tipps

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

Sie wollen das Format yymmddn8 verwenden. Die 'n' bedeutet kein Trenn .

http://support.sas.com/kb/24/610.html B für leere, C für Darm-, D für Strich, N für kein Separator, P für die Periode oder S für Slash angeben können.

hier ist, wie ich tat es in Makro, aber sicher muss ein Format sein ?? !!!

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

seine seltsam - die INFORMAT yymmdd8. YYYYMMDD gibt Ergebnis, während die FORMAT yymmdd8. gibt ein YY-MM-DD Ergebnis !!

Es ist dies eine, die auch den Trick tun sollte

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

Alles auf dem Link unten

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

Sie können alle Datums- und Zeitformate in Registerkarte Hilfe sehen, wenn Sie ‚Datum‘ auf Registerkarte Index ein und wählen Sie dann ‚Datums- und Zeitformate‘

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top