我们读取SAS xpt文件以在.net中加载数据。一切正常但最近我们遇到了一个问题,即客户将日期作为数值存储在列中,并在文件头中提供了格式。 SAS查看器可以使用给定的格式正确显示数据,但我们必须在我们的程序中将.net中的数据加载到我们不需要SAS。
我最近发现你可以使用带有OLEDB的SaS LocalProvider,但事实证明它不支持数字格式化。因此,我们最终会在列中存储错误的数据,其中数据存储为数值,并为其提供格式。
任何人都可以通过一些代码示例帮助我理解并解决问题。我在.Net中查找了代码示例,但到目前为止这个问题没有运气。
提前致谢。
此致
纳西尔
答案 0 :(得分:1)
SAS日期值存储为自1960年1月1日以来的天数。
122
123 data _null_;
124 x=today();
125 put x=;
126 run;
x=19410
今天(2013年2月21日)是自1960年1月1日以来的19410天。假设您知道自己软件的日期格式(可能是其他日期以来的某些天数),您可以自行执行转换。
如果相关,则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
再次,那是截至2013年2月21日08:00的时间。