B.Dick
B.Dick

Reputation: 315

How to convert Character Year to SAS date 1/1/Year?

In Base SAS, how do i convert a character Year (2018) to 01/01/2018 in date format?

data date;
length charyear $8.;
charyear='2018';
run;

Upvotes: 0

Views: 581

Answers (1)

Dmitry.Kolosov
Dmitry.Kolosov

Reputation: 635

In general, when constructing a date from date parts, you should use SAS MDY function. MDY(month,day,year) returns a numeric date, but you need to convert all arguments to numbers, before using the function.

data date;
    length charyear $8.;
    charyear='2018';

    format numDate date9.;
    numDate = mdy(1,1, input(charyear, best.));
run;

In your particular case it can be done even easier by using function INPUT with a corresponding date informat:

data date;
    length charyear $8.;
    charyear='2018';

    format numDate date9.;
    numDate = input("01JAN" || charyear, date9.);
run;

Upvotes: 1

Related Questions