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

The 2025 SAS Hackathon has begun!

It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.

Latest Updates

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