BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
Tal
Pyrite | Level 9 Tal
Pyrite | Level 9

 

%let YTD_START = %sysfunc(intnx(year.11, &LASTFRI, 0),yymmdd10.);

this above gives me YTD_START='2023-11-01'  beginning of  fiscal year but  when i am  trying to get the date 6 months prior  to fiscal year  (below)

 

%let back_6months= %sysfunc(intnx(month,&YTD_START,-6),yymmdd10.);

i am  getting back_6months=1965-01-01.  What do  i have wrong here? 

1 ACCEPTED SOLUTION

Accepted Solutions
PaigeMiller
Diamond | Level 26

Remove the format from the %let YTD_START = statement.

 

%let YTD_START = %sysfunc(intnx(year.11, &LASTFRI, 0));

 

Why? Because to do arithmetic or logical operations on macro variables whose values are dates or time or date/times, the value in the macro variable must be unformatted. See Maxim 28.

--
Paige Miller

View solution in original post

2 REPLIES 2
PaigeMiller
Diamond | Level 26

Remove the format from the %let YTD_START = statement.

 

%let YTD_START = %sysfunc(intnx(year.11, &LASTFRI, 0));

 

Why? Because to do arithmetic or logical operations on macro variables whose values are dates or time or date/times, the value in the macro variable must be unformatted. See Maxim 28.

--
Paige Miller
Tal
Pyrite | Level 9 Tal
Pyrite | Level 9

Thank you !!

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 2 replies
  • 1062 views
  • 0 likes
  • 2 in conversation