2013-02-21 244 views
0

我们读取SAS xpt文件以在.net中加载数据。一切正常,但最近我们遇到了一个问题,即客户将日期存储为列中的数值,并在文件头中提供了格式。 SAS查看器可以使用给定的格式正确显示该数据,但我们必须在我们的程序中以.net加载该数据,并且我们不需要SAS。在数字格式上读取sas xpt文件的问题

我最近发现,你可以使用OLEDB的SaS LocalProvider,但事实证明,它不支持数字格式。所以我们结束了错误的数据列中的数据存储为一个数值为其提供的格式。

任何人都可以请帮助我理解和解决这个问题,可能有些代码示例。我在.Net中查找了代码示例,但是迄今为止还没有运气来解决这个问题。

在此先感谢。

问候,

纳西尔

回答

1
自1月1日

SAS日期值存储为天数,1960年

122 
123 data _null_; 
124 x=today(); 
125 put x=; 
126 run; 

x=19410 

今天(2013年2月21日),例如是19410自1960年1月1日以来的日子。假设你知道你自己的软件的日期格式(可能是其他日期之后的几天),你可以自己进行转换。

如果相关,SAS日期时间值是自1/1/1960 00:00:00以来的秒数。

128 data _null_; 
129 x=datetime(); 
130 put x=; 
131 run; 

x=1677052885.5 
NOTE: DATA statement used (Total process time): 
     real time   0.02 seconds 
     cpu time   0.00 seconds 

再次,这是截至08:00 2/21/2013。

+0

非常感谢Joe,日期存储在SAS中的方式非常简单。我想我现在知道该怎么做。 – Nasir 2013-02-28 09:53:55