2015-10-02 1 views
0

С помощью следующего кода:пытается обновить столбец с разницей между 2 датами, когда один может быть NULL

Update FactQuote 
    SET ConversionDays = 
    CASE 
    WHEN 
     ConversionDate = NULL THEN NULL 
    Else 
     DATEDIFF(day, InitialContactDate, ConversionDate) 
    END 

продолжать получать это сообщение:

Msg 206, Level 16, State 2, Line 10 
Operand type clash: int is incompatible with date 

Как я могу это исправить?

+0

Какой тип бб вы используете? – Maxqueue

+0

SQL Server 2014 –

+0

Я попытался следующие варианты –

ответ

0

Это не ответ, а упрощение (которое слишком длинное для комментария).

DATEDIFF() - как и многие другие функции - возвращает NULL, когда аргумент даты равен NULL. Таким образом, вы можете упростить свое выражение до:

Update FactQuote 
    SET ConversionDays = DATEDIFF(day, InitialContactDate, ConversionDate);