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 ...

Foi útil?

Solução

data _null_;
    format test yymmddn8.;
    test=today();
    put test=;
run;

YYMMDDxw. documentação

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

https://communities.sas.com/thread/60111

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'

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top