sas date - 将today()转换为yyyymmdd格式

时间:2009-07-30 14:48:58

标签: date format sas

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

例如:

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

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

5 个答案:

答案 0 :(得分:23)

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

YYMMDDxw. documentation

答案 1 :(得分:13)

%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表示斜杠。

答案 2 :(得分:2)

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

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

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

答案 3 :(得分:2)

还有一个应该做的伎俩

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

以下链接中的所有内容

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

答案 4 :(得分:0)

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

时,您可以在“帮助”标签中查看所有日期和时间格式