Несоответствие типов данных в then / else в teradata - PullRequest
0 голосов
/ 08 февраля 2012

Я проверяю содержимое y.cap_ts и, если есть значение (не ноль), замените его на current_date или оставьте его как ноль. но я получаю несоответствие типов данных в then / else error.

Здесь cap_ts - тип данных даты.

Кто-нибудь может предложить лучшую работу?

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

Я сейчас работаю в терадате.

1 Ответ

0 голосов
/ 09 февраля 2012

Попробуйте заменить CURRENT_DATE на CURRENT_TIMESTAMP(0). Я знаю, что вы сказали, что CAP_TS - это тип данных DATE, но ваше соглашение об именах, кажется, указывает на иное. В отличие от Oracle, тип данных DATE в Teradata не включает компонент времени. Если оно действительно определено как TIMESTAMP, то вам нужно использовать CURRENT_TIMESTAMP(n), где n - точность времени.

...