Преобразование DT_WSTR в DT_DATE - PullRequest
0 голосов
/ 21 сентября 2018

Так что я довольно новичок в этом деле, но работаю над несколькими проблемами.То, что я пытаюсь сделать, это извлечь исходные файлы из источника плоских файлов, но даты во всех моих исходных файлах отформатированы в YYYYMMDD, поэтому я вставил задачу «Производный столбец» и создал выражение для форматирования всех столбцов с датами YYYYMMDD в YYYY-MM-DD, и это выглядит так:

LEFT(ISSUE_DT,4) + "-" + SUBSTRING(ISSUE_DT,5,2) + "-" + RIGHT(ISSUE_DT,2)

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

[Columns Conversion [1]] Error: Data conversion failed while converting 
column "ISSUE_DT Formatted" (258) to column "Copy of ISSUE_DT Formatted" 
(16).  The conversion returned status value 2 and status text "The value 
could not be converted because of a potential loss of data.".

Я попытался открыть расширенный редактор и перешел к выходным столбцам преобразования данных и попытался изменить тип данных в свойствах типа данных на DT_DATE, но ошибка все еще та же.

Что я пропускаю или делаю неправильно ??

Поток данных

Форматированные даты

Преобразование столбцов

Расширенный редактор преобразования столбцов

1 Ответ

0 голосов
/ 21 сентября 2018

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

Возьмем сегодня, например, если однозначные месяцы или дни не имели начальных нулей, у вас есть 2018918вместо 20180918. Не видя данных, я не могу гарантировать, что это точная проблема, но это что-то вроде этого.Ошибка происходит при преобразовании строки в дату.Итак, продолжая приведенный выше пример, после того, как ваш форматированный производный столбец ISSUED_DT будет иметь значение «2018-91-18», которое, конечно, не является допустимой датой и вызывает ошибку.

...