如何将06JAN2005
(作为日期格式)转换为200501
(作为数字)
答案 0 :(得分:1)
请注意,SAS中只有两种不同的变量类型 - 字符和数字。日期存储在数字变量中,通常格式化为用户可读日期。具体而言,日期存储为自01JAN1960以来的天数。
因此,如果您已将某个数字格式化为日期,并希望其格式不同(但仍然是数字),则只需更改格式即可。
正如乔的评论所说 - 我无法看到你提供的日期和你想要的数字之间的关系(也许你有错字?)。但下面的代码将演示如何简单地更改格式以更改数字的外观:
data _null_;
format date1 best.
date2 yymmddn6.
date3 date9.
;
date1 = '06JAN2005'd;
date2 = '06JAN2005'd;
date3 = '06JAN2005'd;
put date1= date2= date3=;
run;
给出:
date1=16442 date2=050106 date3=06JAN2005
答案 1 :(得分:1)
如果你想要一个显式数值,你可以在日期变量上使用日期函数,正如所指出的那样,它是SAS可以理解的数字日期值。
newdatevar = 100 *年(olddatevar)+月(olddatevar)
答案 2 :(得分:-1)
试试这个:
data a;
attrib
v_input format=date.
v_output_n format=8.;
v_input = '06JAN2005'd;
v_output_n = put(v_input,yymmn6.);
run;
答案 3 :(得分:-1)
如果你的意思是你需要一年||月,那么这样的事情应该有效:
data two;
set one;
order_month = month(date);
order_year = year(date);
order = put(compress(order_month||order_year),6.)-0;
run;
免责声明,我建议您只是格式化其他正确的内容,这样您就不需要将日期表示为数字。如果你想要添加或减去日期的增量,你可能也想查看intx函数