- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Changing date formats are so confusing!
I would like help changing a DOB format that is a SAS date, (e.g. 17673) to a meaningful date such as date10.
Thank you!
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
data _null_;
date= 17673;
date1=put(date,date9.);
date2=date;
format date2 date9.;
put _all_;
run;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
data encounterdate;
set fy14merge;
dob1=input(dob,???);
format dob1 date10.;
run;
THis is the code I am trying to use...but not sure what to put in the ??? if I am working with a SAS date (e.g. 19632)
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Applying a format via the FORMAT statement changes how SAS displays the date, ie the underlying value is 19632, but it appears as 01Oct2013. Keeping the date as a SAS date allows you to use all the date functions in SAS in the future, for example, MONTH(), YEAR() to extract portions of the date. As well as it will sort properly in time, whereas if it's a character variable it will sort alphabetically.
Short version: Apply a format, don't use PUT() to convert.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Thank you!
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
data encounterdate; set fy14merge; dob1=input(dob,???); format dob1 date10.; run; THis is the code I am trying to use...but not sure what to put in the ??? if I am working with a SAS date (e.g. 19632)
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
data encounterdate;
set fy14merge;
format dob date9.;
run;
Try the above. Also, please take the time to format your code properly.
You don't need input unless the value is a character and it seems to be a number.