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-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

Register now!

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
  • 18592 views
  • 1 like
  • 3 in conversation