Inhalte unterschiedlicher Felder aufgrund des Formates ändern
Hallo
als Konsequenz aus meinem Datum=31.12.9999-Problem habe ich mich nun daran versucht, einen Dataset per Macro oder Datastep glattzuziehen... Leider bin ich gescheitert; ich bekomme nur Teillösungen hin.
IST:
Ich habe mehrere aus Excel importierte Tabellen, in denen Spalten an unterschiedlichen Positionen Datümer ausweisen. Die Spalten haben alle das Format DATETIME20. und manche Datümer lauten auf 02JAN****:00:00:00.
SOLL:
Im Prinzip sollen zwei Dinge geschehen:
1. DATETIME20. in DDMMYYp10. umwandeln
2. 02JAN**** soll zum 31.12.9999 verändert werden.
Wenn die Feldnamen immer bekannt wären, ginge dies einfach in dieser Form:
SET WORK.TST;
FORMAT GUELTIG_BIS DDMMYYP10.;
IF DATEPART(GUELTIG_BIS) - 2 = MDY(12,31,9999) THEN
DO;
GUELTIG_BIS = DATEPART(GUELTIG_BIS) - 2;
END;
ELSE
DO;
GUELTIG_BIS = DATEPART(GUELTIG_BIS);
END;
RUN;
Für das FORMAT-Statement dachte ich an ein Macro, welches mir die Felder ausgibt, welche das Format DATETIME20. haben. Eine Liste aller Feldnamen bekomme ich dank dieses Forums (Danke für %VARLIST) ja schon hin, aber diese nun einzuschränken auf die Felder mit dem gesuchten Format gelingt mir nicht. Dafür wird es wohl die Funktion VFORMAT geben, aber die bekomme ich nicht ans fliegen :-(
Im Prinzip müsste mir ein Makro den obigen DATASET dynamisch (je nach dem welche und wie viele Spalten das Format DATETIME20. haben) erzeugen. Geht das überhaupt oder denke ich inzwischen zu sehr um die Ecke ?!?
Gruß aus Hamburg
Marco Schmidt
