将SAS日期加载到Teradata时遇到问题。 SAS中的日期格式为' 01Jan2017' D,在加载teradata中的日期后,将显示一个数字字符串,如23050,但不是日期格式。我在加载之前使用put函数来更改SAS中的格式,并且在加载后我在Teradata中使用了转换日期格式函数,但它们都没有工作。
有人有解决方案吗?
非常感谢您的回答!
答案 0 :(得分:1)
您使用的是SAS / Access Teradata吗?如果是这样,它应该自动将变量定义为Teradata中的日期。我们在SAS做一个小桌子。请注意,附加有效的SAS日期格式对于SAS了解您的变量具有日期值至关重要。
data have ;
mydate = '01JAN2017'd;
format mydate date9. ;
run;
现在让我们将它上传到新的teradata表。
libname td teradata ..... ;
data td.mytable ;
set have;
run;
现在让我们回过头看看里面有什么。
proc print data=td.mytable;
run;
现在,如果您已经将大量数据加载到Teradata中,并且值看起来像是自1960年1月1日以来的整数天数,这是SAS在内部存储日期的方式,那么在Teradata中进行转换是一个简单的计算方法到了约会。只需将其添加回“1960-01-01”即可。尝试在TD服务器上运行此查询。
select DATE '2017-01-01' date1, date '1960-01-01' + 20820 date2
DATE1和DATE2都应该相同。