date(DOD) time (adt) is in numeric format only but in output exstdtc and exendtc showing like below image
below is the code
if dod ne . then doastdtn=input(strip(compress(dod,"-")),??date7.);
if doastdtn ne . then doastdt=strip(put(doastdtn,??date9.));
if adt ne . then doasttm=strip(adt);
if adt ne . then doasttmn=input(adt,??time5.);
if length(strip(doasttm)) le 7 and index(doasttm,":") eq 2 then doasttm="0"||strip(doasttm);
%dateder(indate=doastdt, intime=doasttm, outdt=exstdtc);
Log:
Your post does not include enough information to help answer the question. Posting test data in the form of a datastep is required. For instance, there is no example of what dod or adt is?
Your text is all in opposites, you say dod is numeric, but line 221 is clearly telling you an issue as you have compress() which requires a text var, with dod var which is numeric.
Also, there is no error, only telling you you have differing types for your variables. If its not working, try simplifying your code down, only do one function per run, e.g. see what the compress does, then what the inputs do, this is stepwise error analysis. Only build up long complicated multi calls when you know bits work.
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.