12-03-2012 06:37 AM
I have a macrovariable called &filterdate_start. It's DATETIME20 and has the value 26NOV2012:00:00:00.
I need a new macrovariable called &filterdate_end to equal &filterdate_start + 2 days, with the value 28NOV2012:00:00:00.
What's the most practical way to add 2 days to a DATETIME20 value?
12-03-2012 07:18 AM
I'd use one of SAS's most powerful date/datetime functions: INTNX
%let filterdate_end = %sysfunc( intnx( dtday, "&filterdate_start"dt, 2 ) , datetime20. ) ;
Two assumptions here: &filterdate_start is the formatted datetime value, &filterdate_end is expected to be in datetime20. format.
If not then
%let filterdate_end = %sysfunc( intnx( dtday, &filterdate_start, 2 ) ) ;
will do and return the result as the number of seconds since SAS epoch (formatting then left to you).
Need further help from the community? Please ask a new question.