2012-02-08 2 views
0

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

Здесь 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' Вы можете поделиться определением таблицы? –

ответ

0

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

+0

Ya Я играл с ним и заменил дату меткой, и это сработало. – user1172117

Смежные вопросы