BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
timmy94
Calcite | Level 5

I am trying to convert a date currently in character form to correct format, but my code is changing the date. Could anyone please point out what I am doing wrong?

 

mthyr_birth (existing data)

Jun2001

Feb1954

Feb1984

 

My code:

data want;

set have;

mthyr_birth2 = input(mthyr_birth, MONYY.);

format mthyr_birth2 MONYY.;

run;

 

mthyr_birth2 (output)

JUN20

FEB19

FEB19

 

Many thanks

1 ACCEPTED SOLUTION

Accepted Solutions
Astounding
PROC Star

By default, the MONYY uses a width of 5.  So the INPUT function is reading only 5 characters.  Your data has 7 characters in it, so change MONYY to MONYY7 and you should see better results.

View solution in original post

2 REPLIES 2
Astounding
PROC Star

By default, the MONYY uses a width of 5.  So the INPUT function is reading only 5 characters.  Your data has 7 characters in it, so change MONYY to MONYY7 and you should see better results.

timmy94
Calcite | Level 5
Thanks so much! 🙂

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

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
  • 2 replies
  • 817 views
  • 1 like
  • 2 in conversation