如何将SAS日期(例如" 30JUL2009" d )转换为 YYYYMMDD 格式(例如20090730)?

例如:

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

会给我“test = 20090730”在日志......

有帮助吗?

解决方案

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

YYMMDDxw。文档

其他提示

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

您想使用yymmddn8格式。 'n'表示无分隔符

http://support.sas.com/kb/24/610.html 您可以指定B表示空白,C表示冒号,D表示短划线,N表示无分隔符,P表示句点,S表示斜杠。

这是我在宏中的方式,但肯定必须有格式?? !!!

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

它很奇怪 - INFORMAT yymmdd8。给出YYYYMMDD结果,而FORMAT yymmdd8。给出YY-MM-DD结果!!

还有一个应该做的伎俩

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

以下链接中的所有内容

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

当您在“索引”标签中输入“日期”,然后选择“日期和时间格式”

时,您可以在“帮助”标签中查看所有日期和时间格式
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top