BookmarkSubscribeRSS Feed
CamRutherford
Fluorite | Level 6

Hello,

 

I have an output column with just the text 'January' or 'February' etc.

 

I want to create another column adjacent that will be a date in the following format, '01JAN2017'.

 

My issue is that I always want the date to be the first of the month but for the current year.

 

Eg. 

 

January = '01Jan2017'

February = '01Feb2017'

etc etc

 

Any ideas?

 

Thanks,

Cam

4 REPLIES 4
Astounding
PROC Star

One idea:

 

new_column = '01' || substr(month, 1, 3) || put(today(), year4.);

CamRutherford
Fluorite | Level 6

Hi,

 

This doesn't work. I just get empty column.

 

Cheers,

Astounding
PROC Star

"This doesn't work" isn't really helpful.  Can you post the log from your attempt that didn't work?

kaverisonu1
Fluorite | Level 6

It does work

 

data new;
input month $;
cards;
January
February
March
April
May
June
July
August
September
October
November
December
;
run;
data new1;
set new;
new_col='01';
new_col1=upcase(substr(month,1,3));
new_col2=put(today(),year4.);
fin_col=new_col || strip(new_col1) || trim(new_col2);
run;

SAS Innovate 2025: Register Today!

 

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


Register now!

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 4 replies
  • 1085 views
  • 1 like
  • 3 in conversation