2015-07-14 3 views
0

У меня есть следующие данные в качестве источника первенствовать:SSIS преобразование данных от источника к месту назначения

Date: 1-Jun-15 
Received: 10 
Answered: 9 
AvgWaitTime: 0:00:05 
AvgHandleTime: 0:00:07 
Abandoned: 1 

Таблица назначения является, как показано ниже:

Date date, 
Received float, 
Answered float, 
AvgWaitTime time(7), 
AvgHandleTime time(7), 
Abandoned float 

Когда я пытаюсь импортировать I данных Я получаю ошибку в поле ввода столбца, поскольку sql не может преобразовать его в формат даты. Я превзошел это, создав новую таблицу в соответствии с предложением, данным sql. В новой таблице тип данных для столбца даты - дата и время. Затем я застрял в AvgWaitTime, так как sql не может преобразовать его в формат времени.

Есть ли способ конвертировать все необходимые данные столбца из источника и затем поместить его в пункт назначения? Заранее спасибо.

+0

Независимо от того, что вы получили, не предлагалось использовать столбец 'datetime'. Если вы хотите проанализировать строку, вам необходимо использовать соответствующее преобразование (например, производный столбец), а не создавать новые таблицы. BTW, если вы хотите сохранить десятичные значения, используйте тип 'numeric', а не float –

+0

. Вы можете изменить тип столбца с помощью преобразования' Data Conversion'. Список типов данных [здесь] (https://msdn.microsoft.com/en-us/library/ms141036.aspx). Тип даты - DT_DBDATE. Для времени (0) вы можете использовать DT_DBTIME, для времени (7), DT_DBTIME2 –

ответ

1

В таблице адресатов вы можете изменить тип даты столбца на строку. Он должен работать. Затем вы можете использовать столбцовый столб, помещенный в вашу задачу между источником и пунктом назначения, чтобы изменить его на сегодняшний день (тип datetime, derrived tab tab use replace). Неподтвержденный код:

> (DT_DATE)("20" + 
>  SUBSTRING([ReceivedDt], 1, 2) + "-" + 
>  SUBSTRING([ReceivedDt], 3, 2) + "-" + 
>  SUBSTRING([ReceivedDt], 5, 2)) 
Смежные вопросы