Date sas加载为Teradata日期格式

Date sas加载为Teradata日期格式,date,sas,format,loading,teradata,Date,Sas,Format,Loading,Teradata,我在将SAS日期加载到Teradata时遇到问题。SAS中的日期格式为“2017年1月1日”,在teradata中加载日期后,将显示一个类似23050的数字字符串,但不是日期格式。我在加载前使用put函数在SAS中更改格式,加载后在Teradata中使用cast date format函数,但两者都不起作用 有人能解决这个问题吗 谢谢你的回答 您是否使用SAS/访问Teradata?如果是这样,它应该自动将变量定义为Teradata中的日期。让我们在SAS做一张小桌子。请注意,附加有效的SAS日

我在将SAS日期加载到Teradata时遇到问题。SAS中的日期格式为“2017年1月1日”,在teradata中加载日期后,将显示一个类似23050的数字字符串,但不是日期格式。我在加载前使用put函数在SAS中更改格式,加载后在Teradata中使用cast date format函数,但两者都不起作用

有人能解决这个问题吗


谢谢你的回答

您是否使用SAS/访问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应该相同。

在不使用put函数的情况下尝试。我通常不需要做任何特殊的事情来加载SAS日期,除非日期字段实际上不是日期。当然,我想这完全取决于加载数据所使用的方法。您能否发布详细的示例,说明如何创建SAS变量以及如何将其加载到Teradata中?将其保留为可用于重新创建问题的最小示例。