2013-05-29 6 views
0

Попытка изменить NULL в поле даты в пустые результаты, но она продолжает возвращать дату. Я делаю это в случае, когда, как мне нужно, чтобы соответствовать следующим критериям:Null Дата, возвращающая недействительную дату

CASE WHEN closed = 'y' THEN Date ELSE '' END 

Я попытался заброса VARCHAR и другие вещи, она либо бросает ошибку или ничего не делает!

+0

Вы действительно пытаетесь вернуть значение символа? Как и в том, что происходит с возвращаемой датой - это просто отображение или что-то еще, что эквивалентно значению символа? – Joe

+0

Нет такой вещи, как пустая дата. У вас либо есть значение NULL, либо значение даты. Где вы попробовали лить его как варчар? – BlargleMonster

+0

CONVERT, а не литой, вероятно, ваша проблема, я бы предположил. – Joe

ответ

1

Вы должны преобразовать его в VARCHAR:

CASE WHEN closed = 'y' THEN LEFT(CONVERT(VARCHAR, Date, 120), 10) ELSE '' END 

См How to convert DateTime to VarChar для получения дополнительной информации.

1

В столбце вашего результата может содержаться только один тип, это не может быть как дата, так и текстовое поле. Вы можете преобразовать свою дату в строку, которая вам больше не понадобится, чтобы быть такой датой:

CASE WHEN closed = 'y' 
THEN CAST(Date AS VARCHAR) 
ELSE '' END 
Смежные вопросы