data s1 ;
name=22122018 ;
run;
proc sql ;
select input(put(name,best.),ddmmyy10.) as date format=ddmmyyd10. from s1 ;
quit;
if run above program it gives 22-12-2020 but i want as it is date
data s1 ;
name=22122018 ;
run;
proc sql ;
select input(put(name,best. -l),ddmmyy10.) as date format=ddmmyyd10. from s1 ;
quit;
Your code would keep lead blanks .
Like : ___20122018 .So when you input() it ,your code only read the first 10 characters ___201220, that lead to wrong date.
if you use put(x,best. -L) would get rid of lead blanks and you would get:
20122018 and input() will correctly read it .
So you have a 8-digit number that should be a date. Convert it with
date = input(put(name,z8.),ddmmyy8.);
The z8. format makes sure that leading zeroes are not dropped.
What format you assign to the new variable depends on how you want it displayed.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.