data sas - convertido hoje () em formato AAAAMMDD
Pergunta
Como faço para converter uma data SAS como "30JUL2009"d
em formato YYYYMMDD
(por exemplo, 20090730)?
Assim, por exemplo:
data _null_;
format test ?????;
test=today();
put test=;
run;
me daria "test = 20090730" no log ...
Solução
data _null_;
format test yymmddn8.;
test=today();
put test=;
run;
Outras dicas
%let expectdate1=%sysfunc(putn(%eval(%sysfunc(today())-1),yymmddn8.));
Você quer usar o yymmddn8 formato. Os meios 'n' nenhum separador .
Por http://support.sas.com/kb/24/610.html pode especificar B para o branco, C durante cólon, D para a traço, N para não separador, P para o período, ou S para barra.
aqui está como eu fiz isso na macro, mas certamente deve haver um formato ?? !!!
%let today=%sysfunc(compress(%sysfunc(today(),yymmddd10.),'-'));
seu estranho - o yymmdd8 INFORMAT. dá resultado AAAAMMDD, enquanto o yymmdd8 FORMATO. dá um resultado YY-MM-DD !!
Não é este que deve fazer o truque demasiado
%let today=%sysfunc(today(),yymmddn8.);
%put &today.;
Tudo no link abaixo
Você pode ver todos os formatos de data e hora em guia Ajuda quando você entra em 'data' para a guia Índice e, em seguida, selecr 'de data e hora formatos'