Hi I have to import in datatime SAS this datetime:
2011-02-28-23.59.59.999999
2015-05-22-11.21.17.558222
2015-05-22-12.13.30.386022
I try with this code:
data prova; a='2011-02-28-23.59.59.999999'; b= input(a,ANYDTDTM26.); c=put(b,datetime.); run;
But I get the missing value...
I can't find the correct informat for this type of data....
Any of you, has some suggestion?
I think anyddtm. will truncate the milliseconds part.
Try this to precisely input the datetime.
data _null_;
a='2011-02-28-23.59.59.999999';
b=inputn(substr(a,1,10),'yymmdd10.')*24*60*60+inputn(substr(a,12),'time15.');
put b datetime25.6;
run;
This will split the datetime into two parts and input them separately with the correct informat.
Hope it helps.
Daniel Santos @ www.cgd.pt
Using anydtdtm. instead of anydtdtm26. seems to solve the issue.
I think anyddtm. will truncate the milliseconds part.
Try this to precisely input the datetime.
data _null_;
a='2011-02-28-23.59.59.999999';
b=inputn(substr(a,1,10),'yymmdd10.')*24*60*60+inputn(substr(a,12),'time15.');
put b datetime25.6;
run;
This will split the datetime into two parts and input them separately with the correct informat.
Hope it helps.
Daniel Santos @ www.cgd.pt
Convert the input data to a properly formatted ISO 8601 datetime value, and then use the proper informat:
data have;
input value_char $26.;
substr(value_char,11,1) = 'T';
substr(value_char,14,1) = ':';
substr(value_char,17,1) = ':';
value = input(value_char,e8601dt26.6);
format value datetime26.6;
cards;
2011-02-28-23.59.59.999999
2015-05-22-11.21.17.558222
2015-05-22-12.13.30.386022
;
run;
Instead of the 'T', you can also use a blank. But the 'T' conforms to the norm.
SAS has an informat for that. YMDDTTM.
data date;
input date:ymddttm.;
line=_infile_;
format date datetime32.6;
cards;
2011-02-28-23.59.59.999999
2015-05-22-11.21.17.558222
2015-05-22-12.13.30.386022
;;;;;
run;
proc print;
run;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.