This seems like a rather roundabout way to define a date, why not just write data test4; set test3; if T2DM=0 then Diag_day='01JAN1998'd; format Diag_day mmddyy10.; run; Essentially if T2DM is equal to 0 then diag_day is converted to the SAS date for 01/01/1998 Also this way you don't have to create an extra variable in Diag_day_Q which you likely will have to delete in the future, or have to make sure that your substr commands are all in the right places. For reference you can always directly specify a date by putting it into the DDMMMYYYY format wrapping it in ' and putting a d after it.
... View more