others - 在SAS中如何转换日期到YYYYMMDD的数字格式

我需要一些方法来操作my_date字段。


rsubmit;
proc sql;
 CREATE TABLE test_2 AS 
 SELECT
 my_date
 FROM
 test_1
 ;
quit; 
endrsubmit;

注:我发现在SAS中理解各种方法是很困难的。

澄清一下,该字段实际上是数字,而不是字符字段,也不是日期。

时间:

如果希望字段存储31DEC2014的值20141231,则可以执行以下操作:


proc sql;
 create table want as
 select input(put(date,yymmddn8.),8.) as date_num
 from have;
quit;

input(..)将某些内容转换成数字,put(..)将某些内容转换为字符串,在这种情况下,我们首先使用你想要的格式(yymmddn8.是没有分隔符的YYYYMMDD),然后输入8,这是我们读取的字符串的长度。

一般来说,不应该这么做;将日期存储为字符串表示形式的数字是一个非常糟糕的想法。

不要这么干。

你失去了在日期计算中使用内置SAS函数的能力。

SAS将日期存储为数字,0表示1960年1月1日,并从那里开始递增。

...