Hallo,
ich benötige bitte mal wieder Hilfe.
Ich habe folgende Spalten:
Datum 1 (Format: num., length 8, format 7.)
Datum 2 (Format: num, length 4, format yymmdd10.)
Ich möchte das Datum1 in einen neue Spalte einfügen. Die neue Spalte (Datum 3) soll das gleiche Format haben wie Datum 2.
Danach möchte ich die Differenz (=Anzahl der Tage) ausrechnen zwischen der neuen Spalte "Datum 3" und "Datum 2". Das Ergebnis (Anzahl Tage) soll dann in eine weitere neue Spalte.
Danke für Eure Hilfe!!!
Meine Lösung geht davon aus, dass SAS beide Felder schon als Datum speichert bzw. erkennt.
data _null_;
DATUM = '17apr2016'd;
DATUM1 = '17apr2016'd;
DATUM2 = '17apr2016'd;
attrib DATUM format=ddmmyyp10.;
attrib DATUM1 format=7.;
attrib DATUM2 format=yymmdd10.;
put _all_;
run;
DATUM=17.04.2016 DATUM1=20561 DATUM2=2016-04-17 _ERROR_=0 _N_=1
@Katrin1606 schrieb:
Hallo,
2019-05-31
In dieser Spalte steht immer das gleiche Datum (Datum der Erstellung eines Reports). Aber in der Spalte Datum 2 stehen verschiedene Daten im Format 20190530.
Viele Grüße
Also mit Format 7. kann NIE sowas rauskommen.
Zitat OP:
"Datum 1 (Format: num., length 8, format 7.)"
Was ist es jetzt, eine unformatierte Zahl (dann bitte den richtigen Wert angeben), oder eine Zahl mit YYMMDDD10.?
Hallo @Katrin1606 ,
man benötigt eigentlich keine neue Spalte Datum3, da der Inhalt der Spalte gleich ist, nur das Format unterschiedlich ist.
Das Format kann man z.B. mit dem ATTRIB-Statement ändern.
Die Differenz zwischen zwei Tagen berechnet man am besten mit der INTCK-Funktion.
data TEST;
DATUM1 = '17apr2016'd;
DATUM2 = '28may2019'd;
attrib DATUM2 format=yymmdd10.;
Differenz = abs(INTCK("day",DATUM1,DATUM2));
run;
Viel Erfolg!
Das Format 7. ist für ein vollständiges Datum nicht ausreichend, im vierten Quartal gibt es insgesamt rund 60 Tage, die sich damit nicht korrekt darstellen lassen, wenn das Jahr vierstellig in der Zahl ist, aber davon gehe ich einfach mal aus.
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!