DATA Step, Macro, Functions and more

Converting a SAS date to a formatted Date

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 10
Accepted Solution

Converting a SAS date to a formatted Date

For some reason I can not figure this out. I have a variable, 'date' that is a numeric variable and has SAS value dates. For example: 

 

date=19632

 

Which refers to the date of 10/1/2013.  I want create a new variable 'newdate' that has the mmddyy10. format. 

 

How do I convert date to newdate?

 

Thanks!

 

Lorena

 


Accepted Solutions
Solution
‎09-21-2017 03:33 PM
Super User
Posts: 7,854

Re: Converting a SAS date to a formatted Date

Do you want it to be a SAS date variable with the proper format? Then do:

newdate = date;
format newdate mmddyy10.;

Or do you want it to be the string representation? Then do:

newdate = put(date,yymmdd10.);

which creates a character variable.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers

View solution in original post


All Replies
Solution
‎09-21-2017 03:33 PM
Super User
Posts: 7,854

Re: Converting a SAS date to a formatted Date

Do you want it to be a SAS date variable with the proper format? Then do:

newdate = date;
format newdate mmddyy10.;

Or do you want it to be the string representation? Then do:

newdate = put(date,yymmdd10.);

which creates a character variable.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
Super User
Posts: 11,343

Re: Converting a SAS date to a formatted Date

The flexibility of SAS date formats is one of the, IMHO, great features. Plus you have the ability to create custom ones as well.

The format controls the appearance for display and in analysis procedures can also be used to assign bins for grouping.

Except for some odd uses I recommend leaving date values as numeric as long as possible and just assign the format as desired for any specific use. Formats may be permanently assigned to the variable at creation but overridden with a format statement in any procedure.

 

data _null_;
   date=19632;
   put 'Date in date9. format=' date date9.;
   put 'Date in mmddyy10. format=' date mmddyy10.;
   put 'Date in worddate. format=' date worddate.;
   put 'Date in Julian  format=' date Julian.;
   put 'Date in year quarter format=' date YYQs.;
run;
☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 58 views
  • 0 likes
  • 3 in conversation