BookmarkSubscribeRSS Feed
rasika
Calcite | Level 5

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.;

4 REPLIES 4
SASKiwi
PROC Star

How do want it displayed? Like this?

 

BonusMonth = Hire_Date;
format BonusMonth monyy7.;
novinosrin
Tourmaline | Level 20

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.;
Reeza
Super User

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

 

Month = put(date, monname.);
rasika
Calcite | Level 5
Thank You Soo muchh

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 4 replies
  • 1640 views
  • 1 like
  • 4 in conversation