Hi everyone,
I want to convert a date variable with the following formatting 01JAN2008 (the format is Date9.) to a date variable of year only (i.e. 2008).
Could you please provide some guidance on the syntax to do that?
Thanks in advance!
Hi,
Something like this?
data have;
d = '01JAN2008'd;
format d date9.;
year=year(d);
run;
You have a few options.
1. Convert it to a numerical variable, which is basically the year function
myDate = '01Jan2008'd;
myYear = year(myDate);
2. You can use a format instead to change the appearance. PROC MEANS/FREQ/SUMMARY will respect the format, PROC SQL will not. This changes how the variable is display but not the underlying data.
format myDate year4.;
3. You can do a combination of 1/2, supposing you wanted it as year but in a different variable.
myYear = myDate;
format myYear year4.;
Thank you for your response. I do want to run some proc sql later on, so simply formatting the variable is not the most optimal option.
In the first option you gave me "Convert it to a numerical variable, which is basically the year function" - how can I go about applying that to 12 months (i.e. 01Jan2000, 1Feb2000, 01Mar2000, etc.) with five years worth of data? (i.e. 2000-2004; I have a combination of 01Jan2000, 01Jan2001, 01Jan2002, etc.).
Thanks again!
@Jack_Smitherson wrote:
Thank you for your response. I do want to run some proc sql later on, so simply formatting the variable is not the most optimal option.
In the first option you gave me "Convert it to a numerical variable, which is basically the year function" - how can I go about applying that to 12 months (i.e. 01Jan2000, 1Feb2000, 01Mar2000, etc.) with five years worth of data? (i.e. 2000-2004; I have a combination of 01Jan2000, 01Jan2001, 01Jan2002, etc.).
Thanks again!
That depends on your data structure.
Use the YEAR() function on the variable to obtain the YEAR.
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.