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 !!

sas-innovate-2026-white.png



April 27 – 30 | Gaylord Texan | Grapevine, Texas

Registration is open

Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!

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
  • 1192 views
  • 0 likes
  • 2 in conversation