我需要转换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;
答案 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
中检查缺失值并尝试进行其他转换。