Hi SAS gurus,
May I ask one question how to take today date + 36 months into future? Using the variable below SAS_extension?
data in.indata;
do year=2010 to year(today());
do month=1 to month(today());
SAS_date=mdy(month,1,year);
output;
end;
end;
format SAS_date date9.;
run;
SAS_extension= SAS_date+36 months *** I would like to take today date + 36 months into future
INTNX - note the 4th/last parameter aligns it, in this case, I've chosen the beginning of the month. You can choose, end or same. Look up the values in the documentation.
date_future36=intnx('month', today(), 36, 'b')
INTNX - note the 4th/last parameter aligns it, in this case, I've chosen the beginning of the month. You can choose, end or same. Look up the values in the documentation.
date_future36=intnx('month', today(), 36, 'b')
data in.indata;
do year=2010 to year(today());
do month=1 to month(today());
SAS_date=mdy(month,1,year);
output;
end;
end;
run;
are you sure this is what you want?
do month=1 to month(today())
will return only the months from January to, say, June for ALL years.
To get all months, you would do better with:
SAS_date = '01JAN2010'd;
do while ( SAS_date <= intnx("MONTH", Today(), 0) );
SAS_date = intnx("MONTH", SAS_date, 1);
output;
end;
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.
Early bird rate extended! Save $200 when you sign up by March 31.
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.
Ready to level-up your skills? Choose your own adventure.