Ok, just to be specific: INTNX will not return a year such as 2011. INTNX returns a SAS date value - a count of days since 1/1/1960. For example, today (21/06/2016) is 20626 You can optionally (and typically) apply a format to date values. data _null_;
today=Today();
Start_Of_Five_Years_Ago=INTNX('YEAR', Today, -5, 'B');
Start_Of_Eight_Qtrs_Ago=INTNX('QTR', Today, -8, 'B');
Start_Of_Twelve_Months_Ago=INTNX('MONTH', Today, -12, 'B');
* format _ALL_ date9.;
put _ALL_;
run; Yields: today=20626 Start_Of_Five_Years_Ago=18628 Start_Of_Eight_Qtrs_Ago=19814 Start_Of_Twelve_Months_Ago=20240 If you uncomment the format statement, then the values remain the same, but are displayed formatted: today=21JUN2016 Start_Of_Five_Years_Ago=01JAN2011 Start_Of_Eight_Qtrs_Ago=01APR2014 Start_Of_Twelve_Months_Ago=01JUN2015 "B" will return the beginning of any period, "E" the end, "M" the middle, and "S" the same as the date value passed to the INTNX() function.
... View more