DATA Step, Macro, Functions and more

Convert days from YTD count into mm-dd

Accepted Solution Solved
Reply
Frequent Contributor
Posts: 95
Accepted Solution

Convert days from YTD count into mm-dd

hello,

 

I need to convert date-of-birth that is printed in text as YYYYNNN where NNN=days count from Jan1 inclusive.

 

Here are the examples:

 

Data have;

Input DOB $ ;

Datalines;

1975325

1993236

1980280

run;

 

here is the output that I would like to get:

 

DATA WANT;

FORMAT DOB $ 10.;

Input DOB $ ;

Datalines;

1975-11-21

1993-08-24

1980-06-10

RUN;

 

thank you


Accepted Solutions
Solution
‎04-27-2017 08:05 AM
Super User
Super User
Posts: 7,942

Re: Convert days from YTD count into mm-dd

I don't know of an informat offhand which would handle that, but just code is pretty simple:

data have;
  input dob $;
  date_of_birth=input(cats(substr(dob,1,4),"01","01"),yymmdd10.) + input(substr(dob,5),best.);
  format date_of_birth date9.; 
datalines;
1975325
1993236
1980280
run;

So create a date of 01-01-year, and then add days on.

View solution in original post


All Replies
Solution
‎04-27-2017 08:05 AM
Super User
Super User
Posts: 7,942

Re: Convert days from YTD count into mm-dd

I don't know of an informat offhand which would handle that, but just code is pretty simple:

data have;
  input dob $;
  date_of_birth=input(cats(substr(dob,1,4),"01","01"),yymmdd10.) + input(substr(dob,5),best.);
  format date_of_birth date9.; 
datalines;
1975325
1993236
1980280
run;

So create a date of 01-01-year, and then add days on.

Frequent Contributor
Posts: 95

Re: Convert days from YTD count into mm-dd

Thanks RW9.

Super User
Super User
Posts: 7,942

Re: Convert days from YTD count into mm-dd

Actually,after scanning the formats page there is a format to do this (always best to use the informats where possible):

http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000201594.htm

data have;
  informat dob julian7.;
  input dob;
  format dob yymmdd10.; 
datalines;
1975325
1993236
1980280
run;
☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 3 replies
  • 115 views
  • 4 likes
  • 2 in conversation