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.
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
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.
Ready to level-up your skills? Choose your own adventure.