Столбец, полученный из ssis - проверьте, является ли поле даты пустым - PullRequest
3 голосов
/ 07 февраля 2020

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

TRIM([date field]) == "" ? NULL(DT_DATE) : TRIM([date field])

Поле имеет тип данных DT_DATE , Что в этом плохого?

Я успешно использовал такие выражения:

TRIM(String_field) == "" ? NULL(DT_WSTR,255) : TRIM(String_field)

Ответы [ 2 ]

2 голосов
/ 07 февраля 2020

Вы комбинируете типы данных (если true - это дата, а false - это строка).

Это правильная формула:

TRIM([date field]) == "" ? NULL(DT_DATE) : (DT_DATE)TRIM([date field])

Я предполагаю, что [поле даты] равно строка.

1 голос
/ 08 февраля 2020

Что касается ошибки, то она связана с типом данных производного столбца, поскольку в условных операторах (?:) выражения true и false должны генерировать один и тот же тип данных.

Кроме того, ваше выражение не проверяет NULL-значения, вы должны использовать следующее выражение:

TRIM(REPLACENULL([date field],"")) == "" ? NULL(DT_DATE) : (DT_DATE)TRIM([date field])

Кроме того, вы должны убедиться, что [поле даты] может быть проанализировано как дата, поэтому (DT_DATE)TRIM([date field]) не будет выбрасывать исключение: вы можете использовать вывод ошибок для обработки значения, которое не содержит действительной даты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...