BookmarkSubscribeRSS Feed
letsdoit
Fluorite | Level 6

I have the following:

Date

_1_2_14

_1_3_14

_1_6_14

_1_7_14

_1_8_14

_1_9_14

_1_10_14

and so on.....

and I want to convert it to a date. How can I do that?

Thanks for all the help!

2 REPLIES 2
ballardw
Super User

is you date month day year or day month year? Can't tell from the example.

data junk;

input datestr :$9.;

date=mdy((scan(datestr,1,'_')),(scan(datestr,2,'_')),(scan(datestr,3,'_')));

format date mmddyy10.;

datalines;

_1_2_14

_1_3_14

_1_6_14

_1_7_14

_1_8_14

_1_9_14

_1_10_14

;

run;

works for month day year if you don't mind warnings about character to numeric conversion.

JasonAllen
SAS Employee

Hello letsdoit,

Maybe try:

data want;

  length

    cdate $9;

  format

    date ddmmyys10.;

  input

    cdate $;

  cdate=tranwrd(substr(cdate,2),'_','/');

  date=input(cdate,ddmmyy9.);

  drop

    cdate;

datalines;

_1_2_14

_1_3_14

_1_6_14

_1_7_14

_1_8_14

_1_9_14

_1_10_14

;

run;

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
  • 958 views
  • 3 likes
  • 3 in conversation