DATA Step, Macro, Functions and more

Month from date variable

Reply
Occasional Contributor
Posts: 13

Month from date variable

Hello,

I have written below mentioned code for getting Month of Bonus from Hire date but in Month it shows only Jan, as hire date is starting on 1st of any month so its reading the date and showing as jan.the result output is attached for your reference.

 

FORMAT HIRE_DATE date9. BIRTH_DATE DDMMYY10.;*TO FORMAT DATE;
BonusMonth= month(Hire_Date);
format bonusmonth monname3.;

Super User
Posts: 3,853

Re: Month from date variable

How do want it displayed? Like this?

 

BonusMonth = Hire_Date;
format BonusMonth monyy7.;
PROC Star
Posts: 1,547

Re: Month from date variable

Your are applying format monname to a number that is a date value rather than a month value. So, upto 31 will ofcourse show as jan for the year 1960. 

 

Try

proc format ;  
 value mn_name 1='January'
               2='February'
               3='March'
               4='April'
               5='May'
               6='June'
               7='July'
               8='August'
               9='September'
              10='October'
              11='November'
              12='December'
           other='Invalid';
run;

and apply:
format bonusmonth mn_name.;
Super User
Posts: 23,224

Re: Month from date variable

Posted in reply to novinosrin

Theres a MONNAME format you can use directly on the date. 

 

Month = put(date, monname.);
Occasional Contributor
Posts: 13

Re: Month from date variable

Thank You Soo muchh
Ask a Question
Discussion stats
  • 4 replies
  • 168 views
  • 1 like
  • 4 in conversation