DATA Step, Macro, Functions and more

How to identify previous month full name

Accepted Solution Solved
Reply
Contributor
Posts: 55
Accepted Solution

How to identify previous month full name

I want to identify previous month full name .i.e. If current month is September then I want to retrieve August. Currently I am going with the below approach but this will fail for the month January. Please assist

 

 

month = month(input("&sysdate9",date9.));
lastmonth = int(month) - 1;
put(lastmonth,nlstrmon.);

Accepted Solutions
Solution
‎09-02-2016 01:25 PM
Super User
Posts: 5,099

Re: How to identify previous month full name

Since you have nearly working code, you could tweak it simply:

 

if month = 1 then lastmonth = 12;

else lastmonth = month - 1;

 

If you wanted to get into the depths of how SAS works with dates, you could modify your first statement:

 

lastmonth = month( intnx('month', "&sysdate9"d, -1));

 

As before, that gives you the month number which still has be to converted to the name.

View solution in original post


All Replies
Occasional Contributor
Posts: 8

Re: How to identify previous month full name

You can use monname format:

 

month_name=PUT(date,monname.);

 

But be aware that this takes a date value as input.

 

format prev_month $20.;
Prev_month = put((INTNX('month', today(), -1, 'B')),monname.);

 

Solution
‎09-02-2016 01:25 PM
Super User
Posts: 5,099

Re: How to identify previous month full name

Since you have nearly working code, you could tweak it simply:

 

if month = 1 then lastmonth = 12;

else lastmonth = month - 1;

 

If you wanted to get into the depths of how SAS works with dates, you could modify your first statement:

 

lastmonth = month( intnx('month', "&sysdate9"d, -1));

 

As before, that gives you the month number which still has be to converted to the name.

☑ This topic is solved.

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

Discussion stats
  • 2 replies
  • 223 views
  • 2 likes
  • 3 in conversation