SAS: How to Convert Character Variable to Date


You can use the input() function in SAS to convert a character variable to a date variable format.

This function uses the following basic syntax:

date_var = input(character_var, MMDDYY10.);
format date_var MMDDYY10.;

The following example shows how to use this function in practice.

Example: Convert Character Variable to Date in SAS

Suppose we have the following dataset in SAS that shows the total sales made by some store during six different days:

/*create dataset*/
data original_data;
    input day $ sales;
    datalines;
01012022 15
01022022 19
01052022 22
01142022 11
01152022 26
01212022 28
;
run;

/*view dataset*/
proc print data=original_data;

We can see that day is a character variable, but it needs to be represented in a date format.

We can use the following code to create a new dataset in which we convert the day variable from a character to date format:

/*create new dataset where 'day' is in date format*/
data new_data;
    set original_data;
    new_day = input(day, MMDDYY10.);
    format new_day MMDDYY10.;
    drop day;
run;

/*view new dataset*/
proc print data=new_data; 

Note: We used the drop function to drop the original day variable from the dataset.

We can see that the new variable we created, new_day, is in a date format.

Note that MMDDYY10. is only one possible date format that we could have used. You can find a complete list of SAS date formats here.

Additional Resources

The following tutorials explain how to perform other common tasks in SAS:

SAS: How to Convert Character Variable to Numeric
SAS: How to Convert Numeric Variable to Character
SAS: How to Replace Missing Values with Zero

Leave a Reply

Your email address will not be published.