- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Within a DATA step:
newvar = input(string, mmddyy10.);
format newvar mmddyy10.;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Within a DATA step:
newvar = input(string, mmddyy10.);
format newvar mmddyy10.;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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.?
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Hi Melvin. This will answer your question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
data _null_;
input chardate:$10.;
numdate=input(chardate, mmddyy10.);
format numdate mmddyy10.;
put numdate;
datalines;
12/03/2016
11/29/2016
06/18/2014
;