Hi,
I have a variable 'date' which stores dates as numbers, eg: 2140314 .
For example, the following shows what my data looks like:
2140205
2140328
2140314
All of the data is shown as the number format. I want to convert them into date format. For example, I want to change 2140314 into 03/14/2014.
data have;
input date;
cards;
2140314
;
run;
data want (drop=olddate helpstring);
set have (rename=(date=olddate));
length helpstring $8;
helpstring = put(olddate,7.);
helpstring = substr(helpstring,1,1) !! '0' !! substr(helpstring,2);
format date mmddyy10.;
date = input(helpstring,yymmdd8.);
run;
data have;
input date;
cards;
2140314
;
run;
data want (drop=olddate helpstring);
set have (rename=(date=olddate));
length helpstring $8;
helpstring = put(olddate,7.);
helpstring = substr(helpstring,1,1) !! '0' !! substr(helpstring,2);
format date mmddyy10.;
date = input(helpstring,yymmdd8.);
run;
Thank you ! It solves my problem
Then please mark my post as the solution, so the thread goes to state "solved"
This uses the CATS function to silently convert numeric to character.
33 data _null_;
34 input number;
35 date = input(substrn(cats(number),2),yymmdd6.);
36 format date yymmddd10.;
37 put (_all_)(=);
38 cards;
number=2140205 date=2014-02-05
number=2140328 date=2014-03-28
number=2140314 date=2014-03-14
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.