Pregunta

¿Cómo convierto una fecha SAS como " 30JUL2009 " d al formato YYYYMMDD (por ejemplo, 20090730)?

Entonces, por ejemplo:

data _null_;
  format test ?????;
  test=today();
  put test=;
run;

Me daría " prueba = 20090730 " en el registro ...

¿Fue útil?

Solución

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

YYMMDDxw. documentación

Otros consejos

%let expectdate1=%sysfunc(putn(%eval(%sysfunc(today())-1),yymmddn8.));

Quieres usar el formato yymmddn8. La 'n' significa sin separador .

Por http://support.sas.com/kb/24/610.html puede especificar B para blanco, C para dos puntos, D para guión, N para no separador, P para período o S para barra diagonal.

así es como lo hice en macro, pero seguramente debe haber un formato ?? !!!

%let today=%sysfunc(compress(%sysfunc(today(),yymmddd10.),'-'));

es raro - el INFORMAT yymmdd8. da el resultado AAAAMMDD, mientras que el FORMATO yymmdd8. da un resultado YY-MM-DD !!

Hay uno que también debería hacer el truco

%let today=%sysfunc(today(),yymmddn8.);
%put &today.;

Todo en el enlace de abajo

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

Puede ver todos los formatos de fecha y hora en la pestaña Ayuda cuando ingresa 'fecha' en la pestaña Índice y luego selecciona 'formatos de fecha y hora'

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top