SAS:在yymmdd10中将字符日期转换为数字。格式

时间:2018-04-19 15:19:27

标签: sas

我需要转换SAS字符日期,而不必在yymmdd10中输入数字日期。格式。我尝试了几种格式,但它是空白的。是否可以将字符SAS日期更改为数字SAS日期?

    data check;
     length date $10;
     date="2013-04-17"; output;
     date="2012-11"; output;
     date="2011-12-13"; output;
     date="2015-03-24"; output;
     date="2014"; output; 
   run;

2 个答案:

答案 0 :(得分:1)

如果我理解"没有影响"正确的,答案是"你不能"。

SAS数字日期是从1960年1月1日到指定日期的天数。这仅对特定日期有意义:" 2014-11" (例如,2014年11月)从1960年1月1日起没有具体的天数,那里有30天的跨度,以及" 2014"更糟糕的是。

如果您只有部分日期,则可以计算日期,月份或年份值(当月的第1日,第15日,第30日或随机日等);但没有估算你就不能拥有SAS数字日期值。

答案 1 :(得分:0)

使用INPUT()函数将字符串转换为数字。 SAS将日期存储为数字,因此此功能可用于转换。

data want;
set check;
format date2 date9.;
date2 = input(date,anydtdte10.);
run;

这里anydtdte10.是一个INFORMAT,它告诉函数如何解释字符串。它是大多数日期字符串的通用INFORMAT。

注意2014字符串不能用于此。您可以在date2中检查缺失值并尝试进行其他转换。