Hi:
The issue is that when you create CSV output, Excel does the -default- formatting for columns. So, even though you think that "Mar2011" is a character variable, Excel decides that it is a date and shows it to you as a date string.
If you would switch to HTML output with the SAS Add-in for Microsoft Office (with Excel), you can pass "mso-number-format" values from SAS to the Excel worksheet. This technique does NOT work with CSV returned from a stored process.
You can test out how to use the "mso-number-format" in a regular SAS session, by using the HTMLSTYLE attribute with a STYLE= override. Compare the Excel treatment for the 2 date fields in the CSV file versus the Excel treatment when I use the MSOFFICE2K destination (Microsoft "flavor" HTML).
Then, you can use the PROC PRINT code in your stored process. Instead of returning CSV output, change your SP result type to HTML. And, remember to remove the ODS "sandwich" code and use %STPBEGIN/%STPEND instead in your SP code.
cynthia
[pre]
data class;
set sashelp.class;
date = '01Mar2011'd;
chardate='Mar2011';
format date date9.;
run;
ods csv file='csvout.csv' ;
ods msoffice2k file='msoout.xls';
proc print data=class;
var name age height;
var chardate / style(data)={htmlstyle="mso-number-format:@"};
var date / style(data)={htmlstyle="mso-number-format:mm.dd.yyyy"};
run;
ods _all_ close;
[/pre]