That's because end_date (at least) is datetime, not date (seconds, not days, since 1Jan1960).
If you know for sure that order_date is a date variable:
data td2;
set td1;
END_DATE=ORDER_DATE + MED_QTY1; /*this variable contains days; can be 30, 60, 90 etc */
format END_DATE ddmmyy10.;
run;
If it's datetime:
data td2;
set td1;
END_DATE=datepart(ORDER_DATE) + MED_QTY1; /*this variable contains days; can be 30, 60, 90 etc */
format END_DATE ddmmyy10.;
run;
(You don't need the informat)
If, however, you want to keep end_date as datetime, you need to modify med_qty1.
data td2;
set td1;
END_DATE=ORDER_DATE + (MED_QTY1 * 86400); /*this variable contains days; can be 30, 60, 90 etc */
format END_DATE DATETIME.;
run;
There are 86,400 seconds in a day.
... View more