Date 读取yyyymmdd的sas日期格式
我已使用Proc import将数据集导入SAS。现在的问题是,我无法更改该数据集中的日期格式。在数据中,销售日期的日期是YYYYMMDD,我想将其更改为2005年12月2日。请在下面查找数据。请查找要导入的SAS代码 数据: StoreID SalesDate InvoiceNumber ProductCode数量SalesType砖 A0110515 20051205 225004 3519671 1 0 1638Date 读取yyyymmdd的sas日期格式,date,format,sas,Date,Format,Sas,我已使用Proc import将数据集导入SAS。现在的问题是,我无法更改该数据集中的日期格式。在数据中,销售日期的日期是YYYYMMDD,我想将其更改为2005年12月2日。请在下面查找数据。请查找要导入的SAS代码 数据: StoreID SalesDate InvoiceNumber ProductCode数量SalesType砖 A0110515 20051205 225004 3519671 1 0 1638 proc import out=sample datafile="C:\Us
proc import out=sample datafile="C:\Users\Vigneshwaran\Desktop\Vignesh\vipin1.txt"
dbms=tab replace;
getnames=yes;
datarow=2;
run;
感谢和问候,
V您必须使用单独的步骤<代码>过程导入不允许您更改格式
PROC数据集
可用于更改格式(以及其他内容)
PROC数据集可用于更改格式。但是PROC IMPORT将20051205作为一个整数读取。解释为日期值,即1960年1月1日之后的20051205天。那是1960年后的20000多年。2005年12月5日是1960年1月1日之后的16775天。因此,您需要将数字转换为字符,然后再转换回数字 我的建议是以交互方式运行PROC导入并保存代码。然后,您可以修改代码,添加如下内容
SaleDate = INPUT(PUT(salesdate,8.),YYMMDD8.) ;
FORMAT SaleDate DATE9. ;
将整数转换为SAS日期。如果无法修改代码,请使用上述转换运行数据步骤,或者在导入后使用相同的转换处理SQL
DATA final (RENAME=(saledate=salesdate));
SET sample ;
SaleDate = INPUT(PUT(salesdate,8.),YYMMDD8.) ;
FORMAT SaleDate DATE9. ;
DROP salesdate ;
RUN ;
或
其中PROC SQL后面跟着DomPazz的PROC数据集,以将格式更改为DATE9。根据数据的导入方式和SalesDate列的属性,可以有两种解决方案
/* IF SalesDate is imported as Numeric */
proc datasets lib=work nolist;
modify sample;
format SalesDate date9.;
run;
/* IF SalesDate is imported as Character */
data want;
set sample(rename=(salesdate=sdate));
length SalesDate 8.;
format SalesDate date9.;
SalesDate=input(SDate,yymmdd8.);
drop SDate;
run;
试试这个:
salesdate_1 = input(put(salesdate,10.),yymmdd10.);
然后只添加格式日期9
我总是使用这个。我使用了您的数据最终代码。我在saledate中得到缺少的值。我在日志窗口中收到以下消息。注意:第141行第14列的函数输入参数无效。StoreID=A0110515 SalesDate=*******InvoiceNumber=225004 ProductCode=3519671数量=1 SalesType=0 Brick=1638 SaleDate=_错误=1\N\u1
/* IF SalesDate is imported as Numeric */
proc datasets lib=work nolist;
modify sample;
format SalesDate date9.;
run;
/* IF SalesDate is imported as Character */
data want;
set sample(rename=(salesdate=sdate));
length SalesDate 8.;
format SalesDate date9.;
SalesDate=input(SDate,yymmdd8.);
drop SDate;
run;
salesdate_1 = input(put(salesdate,10.),yymmdd10.);