teradata中then / else中的数据类型不匹配

时间:2012-02-08 17:17:09

标签: sql case teradata

我正在检查y.cap_ts的内容,如果有值(非空),则将其替换为current_date,否则将其保留为空。但是我在/ else错误中得到数据类型不匹配。

这里cap_ts是日期数据类型。

任何人都可以提出更好的解决方法吗?

SET  
cap_ts  = CASE WHEN y.cap_ts IS NULL AND y.rwrd > 50  
                THEN current_date  
                ELSE NULL END  

我目前在teradata工作。

1 个答案:

答案 0 :(得分:0)

尝试将CURRENT_DATE替换为CURRENT_TIMESTAMP(0)。我知道您说CAP_TSDATE数据类型,但您的命名约定似乎表示不同。与Oracle不同,Teradata中的DATE数据类型不包含时间组件。如果它实际上定义为TIMESTAMP,则需要使用CURRENT_TIMESTAMP(n),其中n是时间的精度。