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.
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.