sas加载到Teradata日期格式

时间:2017-02-13 15:55:50

标签: date sas format loading teradata

将SAS日期加载到Teradata时遇到问题。 SAS中的日期格式为' 01Jan2017' D,在加载teradata中的日期后,将显示一个数字字符串,如23050,但不是日期格式。我在加载之前使用put函数来更改SAS中的格式,并且在加载后我在Teradata中使用了转换日期格式函数,但它们都没有工作。

有人有解决方案吗?

非常感谢您的回答!

1 个答案:

答案 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都应该相同。