Прикрепление строковых символов к расчету даты - PullRequest
0 голосов
/ 15 января 2020

Я пытаюсь прикрепить '*' к концу вычисления даты.

Date_of_birth и Date_of_Activatiion имеют одинаковый формат даты YYYY-MM-DD

ISNULL([date_of_birth],(DATEADD(YEAR,-[age],[date_of_activation]))) [DOB]

Выходные данные этого кода будет [date_of_birth] ИЛИ расчет даты рождения, основанный на возрасте человека и активации продукта.

Как мне прикрепить '*', чтобы показать, когда дата рождения рассчитано?

Вот попытка, которую я сделал;

ISNULL([date_of_birth],CONCAT(DATEADD(YEAR,-[age],[date_of_activation]),'*','')) [DOB]

ОШИБКА;

Сообщение 241, Уровень 16, Состояние 1, Строка 7
Ошибка преобразования при преобразовании даты и / или времени из символьной строки.

Я просмотрел несколько других сообщения, но я не могу найти случай, когда они присоединяют строку после вычисления даты.

В идеале вывод должен выглядеть примерно так; ГГГГ-ММ-ДД * когда дата рождения равна нулю.

Есть предложения?

1 Ответ

0 голосов
/ 15 января 2020

Вы можете использовать ISNULL() внутри CONCAT() с кейсом выражение:

SELECT CONCAT(ISNULL([date_of_birth], (DATEADD(YEAR,-[age],[date_of_activation]))),
              CASE WHEN [date_of_birth] IS NULL THEN '*' END
             ) AS [DOB]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...