Hello,
I have a data step whereby I'm selecting around 50,000 customers. In the output file I have date fields (DATE9.) and I want to create an if statement that will create a value for only those dates which fall in the last 3 months. So far I have the below, please advise where I'm going wrong and how I can do this?
IF TXN_DATE BETWEEN TODAY() AND TODAY()-3 THEN DO;R_SCORE=50;END;
Thanks
SAS stores dates as referring to a particular day. So TODAY()-3 is three days earlier. Change it to something like TODAY()-90 and you should be fine.
It's possible (can't test it right now) that you can't use BETWEEN in an IF statement. That's easy enough to change:
if TODAY()-90 <= TXN_DATE <= TODAY() then R_SCORE=50;
SAS stores dates as referring to a particular day. So TODAY()-3 is three days earlier. Change it to something like TODAY()-90 and you should be fine.
It's possible (can't test it right now) that you can't use BETWEEN in an IF statement. That's easy enough to change:
if TODAY()-90 <= TXN_DATE <= TODAY() then R_SCORE=50;
Just to note @Astounding, that is assuming a base value of 30 days per month. That may not be entirely acurate. I would suggest using the function for it:
if intnx('month',today(),-3) <= txn_date <= today() then r_score=50;
Don't shout your code. Normal speech is sufficient (don't write code in all capitals, for readability)
The between operator is only available in where conditions, use this instead:
if intnx('month',today(),-3,'same') <= txn_date <=today()
then do;
r_score = 50;
end;
Assuming that txn_date is a SAS date value, of course
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.