it-swarm.com.de

sas date - Heute () in das Format JJJJMMTT konvertieren

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 mir "test = 20090730" im Protokoll geben ...

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

YYMMDDxw. Dokumentation

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

Sie möchten das Format yymmddn8 verwenden. Das 'n' bedeutet kein Trennzeichen

Per http://support.sas.com/kb/24/610.html können Sie B für Leerzeichen, C für Doppelpunkt, D für Bindestrich, N für kein Trennzeichen, P für Punkt oder S für Schrägstrich angeben .

13

Es gibt diesen, der auch den Trick tun sollte

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

Alles auf den Link unten

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

2
Andy K

so habe ich es in makro gemacht, aber es muss doch ein format geben ?? !!!

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

es ist komisch - der INFORMAT yymmdd8. gibt das Ergebnis JJJJMMTT, während das Format YMMDD8. ergibt ein JJ-MM-TT-Ergebnis !!

2
Allan Bowe

Sie können alle Datums- und Zeitformate in der Registerkarte "Hilfe" anzeigen, wenn Sie "Datum" in die Registerkarte "Index" eingeben und dann "Datums- und Zeitformate" auswählen.

0
andrey_sz