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.
Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.
Register today!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.