3 Monate von einem Datum abziehen
Verfasst von SusanneV am 6 November, 2009 - 11:43
Liebe SAS-Freunde,
ich möchte aus diesen möglichen Angaben (aufgehört zu rauchen) und einem Untersuchungsdatum eine Jahresangabe ableiten:
(1) innerhalb des letzten Monats
(2) 1-3 Monate
(3) 4-6 Monate
(4) 7-12 Monate
z.B. 18.05.1998 - 1 Monat (für innerhalb des letzten Monats) = 18.04.1998, um das Jahr 1998 zu bekommen
oder 31.01.2001 - 3 Monat = 31.10.2000
Das Jahr aus dem Datum auslesen ist kein Problem, aber ich finde nirgends eine Funktion, die Monate abziehen kann.
Kann mir da jemand weiterhelfen?
Vielen Dank und viele Grüße
Susanne
»
- Anmelden oder Registrieren um Kommentare zu schreiben

Funktion INTNX
Hallo,
über folgenden Weg kann man das Jahr ermitteln.
DatumA = '28MAY2009'd;
DatumB = '10JUN2009'd;
DatumC = '18JAN2009'd;
JahrA3Mon = YEAR(SUM(INTNX('MONTH',DatumA,-3,'SAMEDAY')));
JahrB3Mon = YEAR(SUM(INTNX('MONTH',DatumB,-3,'SAMEDAY')));
JahrC3Mon = YEAR(SUM(INTNX('MONTH',DatumC,-3,'SAMEDAY')));
PUT 'JahrA3Mon = ' JahrA3Mon;
PUT 'JahrB3Mon = ' JahrB3Mon;
PUT 'JahrC3Mon = ' JahrC3Mon;
RUN;
Ergebnis der LOG-Ausgabe:
Warum das SUM?
Hallo,
warum sollte da ein SUM(...) zwischen stehen?
Das geht doch auch ohne, denn intnx() liefert einen date-Wert zurück, mit dem year() dann auch umgehen kann.
Schönen Gruß
Olaf Musch
Beim Editieren vergessen
Hallo,
stimmt, die SUM-Funktion ist an dieser Stelle natürlich überflüssig. Ich hatte den ursprünglichen Beitrag editiert, nachdem mich ein Arbeitskollege auf die Möglichkeit von "SAMEDAY" aufmerksam gemacht hat.
Der Vollständigkeit halber:
hat geklappt
Hi Mario,
das hat super geklappt, auch dass SAS mit 'SAMEDAY' intern z.B. vom 30.März auf den 28.Februar springt. Vielen Dank für deine Hilfe!