A SAS value cannot be converted to a Teradata date
我在 SAS DIS 中有一个带有日期变量 source_datetime 的临时工作表。此变量采用 DATETIME22.6 格式。
我有一个带有日期字段 target_date(类型 DATE)的 teradata 表,并使用表加载器尝试将 source_datetime 映射到 target_date。当我运行转换时,我得到了错误
ERROR: A SAS value cannot be converted to a Teradata date
临时工作表填充了良好的数据。当我尝试从 DATETIME22.6 到 DATE9. 的转换时,输出看起来像 "*********".
非常感谢。
- 您能否将其缩小到导致错误的特定行/值?
-
所有行都具有相同的日期值。尝试加载第一行时发生
-
哦,对不起,你确实这么说了。 =) 你的日期栏是什么类型的?
-
您的 Teradata 系统上是否安装了 SAS 格式包?
-
该领域的潜在价值是什么?当你说你从 DATETIME 转换为 DATE9 时,你在做什么来转换它?
-
嘿乔。我正在使用 DHMS 函数进行转换。我已经解决了我的错误,尽管我以迂回的方式解决了问题,但没有说明问题是什么。从本质上讲,从 DATE9. 到 DATETIME26.6 的转换来回发生,并且在某些时候 SAS DIS 停止显示日期。我改变了工作的逻辑,但是这里的 protocall 相对于帖子的答案是什么?我要删除问题吗?谢谢
我对 DIS 或 Teradata 知之甚少,但我认为两者都与您的问题无关。
日期时间值是自 1960 年 1 月 1 日 00:00:00 以来的秒数。日期值是自 1960 年 1 月 1 日以来的天数。
听起来您正在尝试将 date9 格式应用于日期时间值。如果这样做,它通常看起来像 ********* 因为秒数太高而无法表示为日期。如果您想保留日期时间值但将其格式化为日期,请使用 dtdate9 格式。否则,您可以使用 datepart() 函数将日期时间值转换为日期值,然后使用 date9 格式。
- 嗨,德沃尔。是的,我一直使用 DATEPART 从 datetime 转到 date9.,并使用 dhms 反过来。应用任何一次都可以正常工作。但是由于某种原因,这项工作被设置为多次进行这些转换,我认为这就是把程序搞砸的原因。我无法解释得更详细,这只是一种怀疑,但正如您可能期望的那样,有比这更好的方法来编写工作,并且我已经实施了更好的方法。感谢您对此的帮助!