从SAS中的8位数字int(ddmmyyyy)中提取年份

时间:2018-02-09 11:15:28

标签: sas

我有一个8位数的出生日期(例如,19860710)。如何提取年份部分的4位数字并将其存储在SAS的新变量(例如1986)中?

3 个答案:

答案 0 :(得分:1)

我建议在处理日期时(几乎)始终转换为SAS日期。你会以这种方式避免很多头痛。

data wanted; 
    sas_date=input('19860710', yymmdd8.);
    Sae_year=year(sas_date);
    call symput('Year_mac_var', Sae_year);
run;

%put &Year_mac_var.; 
1986

您可以通过Substring Proc sql或算术方式完成此操作。这正是我喜欢的。

答案 1 :(得分:1)

使用子字符串:

num=19860710;  /*Date as Numeric*/
txt=put(num,8.); /*Change Numeric to Char*/
year=substr(txt,1,4);

或者

year=substr("19860710",1,4);

答案 2 :(得分:0)

data _null_;
 date=19860710;
 year=year(input(put(date,8.),yymmdd8.));
 put year;
run;