You have more parentheses than you need in CALL SYMPUT('date',(&do_date)); Even without those extras, the effect is providing the macro variable as a number. Try : CALL SYMPUT('date',"&do_date"); I think those extra parentheses cause evaluation, when all you want is a string constant for that CALL routine. Those double quotes permit the macro variable to be resolved while being quoted like a string. The numeric result of the evaluation has to be converted to a string and the default is BEST12. So you get leading zeroes. You want only the text in that macro variable so treat it as a string "&do-date" You might find another problem when your START and END straddle a year-end. That will/might happen when the variable DTE has a january or december date good luck
... View more