Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 读取yyyymmdd的sas日期格式_Date_Format_Sas - Fatal编程技术网

Date 读取yyyymmdd的sas日期格式

Date 读取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将数据集导入SAS。现在的问题是,我无法更改该数据集中的日期格式。在数据中,销售日期的日期是YYYYMMDD,我想将其更改为2005年12月2日。请在下面查找数据。请查找要导入的SAS代码

数据: StoreID SalesDate InvoiceNumber ProductCode数量SalesType砖

A0110515 20051205 225004 3519671 1 0 1638

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.);