BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
TurnTheBacon
Fluorite | Level 6

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?

1 ACCEPTED SOLUTION

Accepted Solutions
LinusH
Tourmaline | Level 20

If you want the same time of day, just add 2 * 24 * 60 * 60.

Data never sleeps

View solution in original post

2 REPLIES 2
LinusH
Tourmaline | Level 20

If you want the same time of day, just add 2 * 24 * 60 * 60.

Data never sleeps
Robert_Bardos
Fluorite | Level 6

I'd use one of SAS's most powerful date/datetime functions: INTNX

Somewhat like

%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).

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

How to connect to databases in SAS Viya

Need to connect to databases in SAS Viya? SAS’ David Ghan shows you two methods – via SAS/ACCESS LIBNAME and SAS Data Connector SASLIBS – in this video.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 2 replies
  • 18822 views
  • 1 like
  • 3 in conversation