Использование ISNULL в столбце даты - PullRequest
1 голос
/ 19 марта 2019

У меня есть столбец даты, в котором некоторые строки имеют значения NULL.Я хотел бы использовать ISNULL или что-то подобное для замены этих значений чем-то вроде 'N / A', однако, когда я пытаюсь использовать ISNULL, я получаю ошибку из-за двух разных типов данных.Если я пытаюсь преобразовать свой столбец Date в VARCHAR, чтобы иметь возможность использовать ISNULL, то способ отображения дат в моем столбце искажается.Есть ли способ решить эту проблему?

ISNULL(DateSent, 'N/A')

Ответы [ 2 ]

3 голосов
/ 19 марта 2019

Я рекомендую COALESCE(), потому что это стандарт.Однако ваша проблема в том, что первый столбец - это дата / время, и он не совместим со строкой.

Итак, вам необходимо преобразовать значение.Вы можете использовать формат по умолчанию:

COALESCE(CONVERT(VARCHAR(255), DateSent), 'N/A')

. Или вы можете добавить аргумент преобразования:

COALESCE(CONVERT(VARCHAR(255), DateSent, 120), 'N/A')

. Или вы можете использовать FORMAT() для большей гибкости.

0 голосов
/ 19 марта 2019

Вы можете попробовать это

Select ISNULL(Cast(DateSent as Varchar(20)), 'N/A')

Ниже приведен один пример:

declare @DateSent date = getdate()
Select ISNULL(Cast(@DateSent as Varchar(20)), 'N/A')

Для значений NULL, как показано ниже.

declare @DateSent1 date = NULL
Select ISNULL(Cast(@DateSent1 as Varchar(20)), 'N/A')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...