Hello, Need help in converting a string value to date datatype in my data set.
Date was stored in string field and now I want to change it to format mmddyy10.
String values:
12/03/2016
11/29/2016
06/18/2014
Within a DATA step:
newvar = input(string, mmddyy10.);
format newvar mmddyy10.;
Within a DATA step:
newvar = input(string, mmddyy10.);
format newvar mmddyy10.;
You can use the INPUT() function. Your strings look like you should be able to use the MMDDYY informat to read them. Note that dates are numbers so you will need to make a new variable.
date = input(string,mmddyy10.);
Now that you have a date value you can attach any date format to it so that it will print in a human readable form. If you want the date to print in MDY order then attach the MMDDYY10. format to it.
format date mmddyy10.;
But why not print the numbers using a less confusing date format where users don't have to guess whether the value represents Dec10 or Oct12? Like DATE9. or YYMMDD10.?
Hi Melvin. This will answer your question.
Always better to store date values as number and just to display them in the desired format:
data have;
infile datalines;
input d $10.;
datalines;
12/03/2016
11/29/2016
06/18/2014
;
run;
data want;
set have;
d_num=input(d,mmddyy10.);
format d_num date9.;
run;
data _null_;
input chardate:$10.;
numdate=input(chardate, mmddyy10.);
format numdate mmddyy10.;
put numdate;
datalines;
12/03/2016
11/29/2016
06/18/2014
;
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.