Help using Base SAS procedures

Getting the date three months ago

Accepted Solution Solved
Reply
New Contributor
Posts: 2
Accepted Solution

Getting the date three months ago

[ Edited ]

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;

 

 


Accepted Solutions
Solution
‎03-11-2016 01:25 PM
Super User
Posts: 11,343

Re: Getting a the date three months ago

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.

View solution in original post


All Replies
Solution
‎03-11-2016 01:25 PM
Super User
Posts: 11,343

Re: Getting a the date three months ago

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.
New Contributor
Posts: 2

Re: Getting a the date three months ago

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;

☑ This topic is solved.

Need further help from the community? Please ask a new question.

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