Help using Base SAS procedures

Convert Character to Date (MONNAME3.) format

Accepted Solution Solved
Reply
Contributor SKP
Contributor
Posts: 25
Accepted Solution

Convert Character to Date (MONNAME3.) format

Hi,

 

I imported a data from excel file into SAS dataset, and I had month name (e.g. Jan, Feb) in one of the fields.  When I imported it, the fields was imported as Character, but I'd like to change it to date (MONNAME3.) format.  I tried it to change in "Property" tab, and under "General" -> "Group" to Date, but I saw only Character in Group.  Can someone help me how I can change it?

 

Thanks.


Accepted Solutions
Solution
‎08-10-2016 03:03 PM
Super User
Posts: 5,081

Re: Convert Character to Date (MONNAME3.) format

[ Edited ]

You will have to be prepared to supply more information.  SAS dates represent a particular day. 

 

Given a three-letter month, you can always decide that the day should match the first day of the month.  But you have to be prepared to supply a year as well.

 

Editor's note: added sample code to illustrate this solution.

 

data mon;
 infile datalines;
 length monname $ 3 month 8;
 format month monname3.;
 input monname;
 /* building a proper date with DayMonthYear             */
 /* "Jan" becomes "01Jan0", which SAS can read as a date */
 month = input( cat('01',monname,'0'), date9.);
datalines;
Jan
Feb
Mar
Apr
Jan
;

View solution in original post


All Replies
Solution
‎08-10-2016 03:03 PM
Super User
Posts: 5,081

Re: Convert Character to Date (MONNAME3.) format

[ Edited ]

You will have to be prepared to supply more information.  SAS dates represent a particular day. 

 

Given a three-letter month, you can always decide that the day should match the first day of the month.  But you have to be prepared to supply a year as well.

 

Editor's note: added sample code to illustrate this solution.

 

data mon;
 infile datalines;
 length monname $ 3 month 8;
 format month monname3.;
 input monname;
 /* building a proper date with DayMonthYear             */
 /* "Jan" becomes "01Jan0", which SAS can read as a date */
 month = input( cat('01',monname,'0'), date9.);
datalines;
Jan
Feb
Mar
Apr
Jan
;
Contributor SKP
Contributor
Posts: 25

Re: Convert Character to Date (MONNAME3.) format

Thank you for the reply.

I added date 1 and year 0, and it worked.  I was able to change it to MONNAME3. format.

 

Thanks again.

 

 

 

 

☑ This topic is SOLVED.

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

Discussion stats
  • 2 replies
  • 318 views
  • 0 likes
  • 2 in conversation