There will be many ways to do this, but here is one suggestion. %let date = 2012-11; /* we could use in informat or break out the separate date components, as below */ %let y=%substr(%left(&date),1,4); %let m=%substr(%left(&date),6,2); %put y=&y m=&m; /* create a numerical version of the date */ %let mydateN = %sysfunc(mdy(&m.,1,&y.)); /* create a Character (formated) version of the date */ %let mydateF= %sysfunc(putn(&mydateN.,yymmd7.)); /* decrease date and create a new Character (formated) version of the date */ %let me = %sysfunc(intnx(month,&mydateN.,-1),yymmd7.); %put &date; %put MyDate (Numerical) &mydateN; %put MyDate (Formated) &mydateF; %put &me;
... View more