🔒 This topic is solved and locked.
Need further help from the community? Please
sign in and ask a new question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Posted 03-11-2016 12:56 PM
(5010 views)
Hi, this is my first post, and I am wondering how I can use the date three months ago in a sql query. I want to use the date in a WHERE clause. The main problem I have is that today() does not play well with intnx.
Thanks for your help!
data _null_;
threeMonthsAgo = intnx('month', today(), -3, e);
call symput('end_date', threeMonthsAgo);
run;
proc sql;
select * from mydatabase where the_date < &end_date;
end;
1 ACCEPTED SOLUTION
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
You need to check your log the issue is that e needs to be in quotes as a directive to INTNX. Without quotes it is interpreted to be a variable and since there is no variable e it has no value and generates an error.
2 REPLIES 2
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
You need to check your log the issue is that e needs to be in quotes as a directive to INTNX. Without quotes it is interpreted to be a variable and since there is no variable e it has no value and generates an error.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for your help.
Here is the new code with your improvements plus formatting:
data _null_;
threeMonthsAgo = put(intnx('month', today(), -3, 'e'), yymmdd10.);
call symput('end_date', threeMonthsAgo);
run;
%put &end_date;