- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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')
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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')
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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;