2012-02-08 52 views
0

我在檢查y.cap_ts的內容,如果有值(非空),則將其替換爲current_date,否則將其保留爲空。但是在then/else錯誤中我得到數據類型不匹配。teradata中then/else中的數據類型不匹配

這裏cap_ts是日期數據類型。

任何人都可以提出更好的解決辦法嗎?

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

我目前在teradata工作。

+0

您是否嘗試將其設置爲靜態日期? DATE'1980-01-01'你可以分享表格定義嗎? – 2012-02-09 14:43:08

回答

0

嘗試用CURRENT_TIMESTAMP(0)代替CURRENT_DATE。我知道你說CAP_TS是一個DATE數據類型,但你的命名約定似乎是另有說明。與Oracle不同,Teradata中的DATE數據類型不包含時間組件。如果它實際上被定義爲TIMESTAMP那麼你需要使用CURRENT_TIMESTAMP(n),其中n是時間的精度。

+0

雅我正在玩它,並用時間戳替換日期,它的工作。 – user1172117 2012-02-14 20:27:05