- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
%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?
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Thank you !!