trying to convert sdtm date into is8601dt format in adam,not working,what I am missing?
TR02SDTM=input(EXSTDTC,is8601dt.);
Post the log, please. An some example data (see my footnotes for this).
data exb1_;
24
25 set exb;
26 by usubjid;
27 if first.usubjid then do;
28 TR02SDT=input(EXSTDTC,e8601da.);
29
30 TR02SDTM=input(EXSTDTC,e8601dt.);
31 end;
32 if last.usubjid then do;
33 tr02edt=input(exendtc,e8601da.);
34 end;
35 format tr02sdtm e8601dt.;
36 format TR02SDT tr02edt e8601da.;
37 run;
NOTE: Invalid argument to function INPUT at line 30 column 13.
I dont think there is an is8601dt informat to convert to a date numeric variable before you apply is8601dt format
You prolly need E8601DTw.d informat . Correct me if i am wrong
I'm a little confused by your log and the format of the original values. Doesn't something like this work?
data d;
exstdtc = "2003-03-26T09:00";
tr02sdtm = input (exstdtc,is8601dt.);
format tr02sdtm is8601dt.;
run;
unexpected leading or trailing blanks maybe causing the missing values. use COMPRESS() and check.
data test;
var1=' 2003-03-26T09:00';
var2='2003-03-26T09:00';
need1=input(var1,is8601dt.);
need2=input(var2,is8601dt.);
run;
Thanks everyone.Problem was with blank space.
used tr02sdtm=input(strip(exstdtc),e8601dt.); and it worked
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.