I have a datetime character variable which i am converting to date9. but for few obs seconds are missing
ldt atd
2018-12-13T10:30:00 13DEC2018
2018-12-10T09:40 .
I use the this code but it makes the second observation mentioned above as missing
input(ldt, anydtdtm.) as atd format=dtdate9.
is there any way i can make ldt =2018-12-10T09:40 as 2018-12-10T09:40:00
Please suggest
If you want it to be a date variable, simply extract the date part of the character variable and convert like this
data have;
ldt="2018-12-13T10:30:00";output;
ldt="2018-12-10T09:40";output;
run;
data want;
set have;
Adt=input(substr(ldt, 1, 10), yymmdd10.);
format Adt date9.;
run;
Just to be clear, do you want Adt to be a datetime variable or a date variable?
If you want it to be a date variable, simply extract the date part of the character variable and convert like this
data have;
ldt="2018-12-13T10:30:00";output;
ldt="2018-12-10T09:40";output;
run;
data want;
set have;
Adt=input(substr(ldt, 1, 10), yymmdd10.);
format Adt date9.;
run;
No need to extract the chars as th very informat's instructions yymmdd10. will read the non standard char date upto 10 chars and convert to a sas date.
So just apply the informat-->
data have;
ldt="2018-12-13T10:30:00";output;
ldt="2018-12-10T09:40";output;
run;
data want;
set have;
Adt=input(ldt, yymmdd10.);
format Adt date9.;
run;
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.