неверные значения дат в ssis - PullRequest
0 голосов
/ 14 февраля 2019

Я работаю с ssis.У меня есть столбец, который содержит дату в формате целое число YYYYMMDD: например, за день я получаю 20190214. Я использую производный столбец, чтобы преобразовать его в формате даты YYYY-MM-DD в моем случае, например, 2019-02-14

Но иногда я получаю неправильные значения, например 20188101.Как я могу проверить, что у меня есть хорошие значения для преобразования в дату?

1 Ответ

0 голосов
/ 14 февраля 2019

Для этого есть 3 способа

(1) Использование другого производного столбца

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

(DT_DATE)(LEFT([DateColumn],4) + "-" +  SUBSTRING([DateColumn],5,2)  + "-" + RIGHT([DateColumn],2))

Если значение даты неверно, перенаправьте неверное из конфигурации Error Output, и вы можете обработать эти неверные значения из вывода ошибок.

Полезные ссылки

(2) Использование компонента сценария

Добавьте компонент сценария, чтобы проверить правильность значения, и добавьте столбец вывода типа, например OutDateColumn, используйте аналогичный код (VB.NET)

IF Not Row.DateColumn_IsNULL Then

dim dtDate as DateTime

    If DateTime.TryParseExact(Row.DateColumn,"yyyyMMdd",System.Globalization.InvariantCulture,System.Globalization.DateTimeStyles.None  , dtDate ) Then

        Row.outDateColumn = dtDate.ToString("yyyy-MM-dd")

    Else

        Row.outDateColumn_IsNull = True

    End If


Else

    Row.outDateColumn_IsNull = True

End If

(3) Добавить преобразование преобразования данных

После производного столбца Преобразование добавьте преобразование преобразования данных и попытайтесь преобразовать столбец производных данных, добавляемый в DT_DATE,если преобразование не удалось, тогда обработайте неверные значения из ErrorВыведите, как описано в первом методе.

...