SAS : Convert Character Variable to Date

This tutorial explains multiple ways we can convert character variable to SAS date.
Suppose you encounter a problem in which you need to convert character variable to SAS date format. It happens most of the times when we upload raw data file in TXT, EXCEL or CSV format to SAS. The problem with dates in character format is you cannot apply any calculations on them.
Create a Sample Data
data example;
input dateofbirth $20.;
Convert Character Variable to SAS Date

The INPUT function is used to convert character variable to numeric. With MMDDYY10. format, we assign format of the date.
data out;
set example;
dateofbirth2 = input(strip(dateofbirth),MMDDYY10.);
format dateofbirth2 MMDDYY10.;
Important Note : Please make sure a new variable is created for conversion. If you use the same variable for conversion, the format of the variable would remain character.

Output : Convert Character Variable to Date

Convert Multiple Character Variables to Date

Suppose you need to convert multiple character variables to SAS datevalue format. We can create SAS array to convert them.
data example2;
input dateofbirth $10. hire $11.;
1971-11-21 1991-12-21
1980-05-14 1999-10-20
Real SAS Date values are numeric so numeric array is created for them.
data out;
set example2;
array olddates $ dateofbirth hire;
array newdates dt1 dt2;
do i = 1 to dim(olddates);
newdates(i) = input(strip(olddates(i)),yymmdd10.);
drop i;
format dt1-dt2 yymmdd10.;
Array : Convert Character Variable to SAS Date

SAS Tutorials : 100 Free SAS Tutorials

Get Free Email Updates :
*Please confirm your email address by clicking on the link sent to your Email*

Related Posts:

4 Responses to "SAS : Convert Character Variable to Date"

  1. Hi, this is Arvind, your site is really good, while checking SAS tutorial, i felt it really good because you mention there each and every small thing so nicely. so thanks for that.

    1. Thanks Arvind for your appreciation. Cheers!

  2. Hi Deepanshu, This is Manjunatha. In the dataset1, the date variable is character$9. When I tried to convert it Eg: Newdate=input(strip(date),mmddyy10.); format Newdate mmddyy10. It is showing as missing values (.). Please help.thanks.

    1. Could you please post an example of your date variable?


Next → ← Prev