在test_1表中,my_date
字段是“DATE9”。格式。
我想把它转换成一种纯数字格式(数字长度8),格式为YYYYMMDD
。
我还想在理想情况下在proc语句中这样做。
到目前为止我的情况是这样的。
显然,我需要一些东西来操作my_date字段。
rsubmit;
proc sql;
CREATE TABLE test_2 AS
SELECT
my_date
FROM
test_1
;
quit;
endrsubmit;
FYI:我发现很难理解SAS中的各种方法。
为了澄清,该字段实际上应该是一个数字,而不是字符字段,也不是日期。
发布于 2014-08-05 19:17:10
如果希望该字段存储用于31DEC2014
的值31DEC2014
,则可以这样做:
proc sql;
create table want as
select input(put(date,yymmddn8.),8.) as date_num
from have;
quit;
input(..)
将某物转换为数字,put(..)
将某物转换为字符串。在本例中,我们首先使用您想要的格式( put
是没有分隔符的YYYYMMDD ),然后用8.
表示它,这是我们读取的字符串的长度。
通常,不应该这样做;将日期存储为字符串表示的数字是一个非常糟糕的想法。尽量保持在日期格式内,因为一旦您了解了日期格式,它们就更容易使用了,SAS也会很高兴地与其他数据库一起使用它们的日期类型。如果您想要"20141231“表示(例如,将其放入文本文件),则将其设置为字符变量。
https://stackoverflow.com/questions/25146404
复制相似问题