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.);
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.
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.);
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.
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.