I concatenate separate month and year variables into a single month-year variable, but the resulting variable is in a character format. I am trying to convert that into a SAS date variable to be able to calculate intervals with other date variables.
I am successful in the first step, but unable to get the month-year variable into a SAS date format. Below are the error I am getting and the SAS output. Any help would be much appreciated.
Data two;
set one;
date=cats(aamn, aayear);
put date= ;
format date mmyy7.; run;
ERROR 48-59: The format $MMYYS was not found or could not be loaded.
Obs | date | AAMN | AAYEAR |
1 | 32003 | 3 | 2003 |
2 | 12003 | 1 | 2003 |
A month and a year is not enough to convert to a SAS date. Dates in SAS refer to a specific day. If you are willing to use the first day of the month, you could use:
sasdate = input( cats(aamn, '01', aayear), mmddyy8.);
format sasdate yymmdd10.;
or maybe
sasdate= mdy(aamn,1,aayear);
format sasdate mmyyd.;
Thank you, your code worked for me.
Thanks, your code is great. Because I needed to limit to the month and year, I found the other code more appreciate to my needs. I really appreciate your help.
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.