SAS日期 - 今日()转换为YYYYMMDD格式

问题描述:

如何转换为SAS日期,例如"30JUL2009"dYYYYMMDD格式(如20090730)?SAS日期 - 今日()转换为YYYYMMDD格式

因此,例如:

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

能给我“考= 20090730”在日志中...

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

YYMMDDxw. documentation

+0

优秀的 - 不知道有关的分隔符选项 – 2009-07-31 08:13:33

+0

嗯。也许我做错了什么,但格式适合我的是:format test yymmddn8 .; – pinegulf 2017-05-29 12:12:33

+0

谢谢@pinegulf,我更新了答案。只花了8年的时间才有人抓住这个! – adam 2017-08-09 16:52:52

这里是我做到了在宏观,但肯定有一定的格式? !

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

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

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

你可以看到在帮助选项卡中所有的日期和时间格式,当你输入“日期”来索引选项卡,然后selecr“日期和时间格式”

有这一个应该做的伎俩太

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

一切以下链接

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