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;

sas-innovate-2026-white.png



April 27 – 30 | Gaylord Texan | Grapevine, Texas

Registration is open

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!

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