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
April 27 – 30 | Gaylord Texan | Grapevine, Texas
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!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.
Ready to level-up your skills? Choose your own adventure.