Эквивалентное выражение SSIS

Я не могу преобразовать следующий SQL-код в соответствующее выражение служб SSIS и преобразовать его в формат DATE.

 SUBSTRING(A.FILENAME,13,2)+'-'+SUBSTRING(A.FILENAME,15,2)+'-'+SUBSTRING(A.FILENAME,17,4)

Это лучшее, что я мог получить

DT_DATE(SUBSTRING(@[User::V_LoadFileName],13,2)+'-'+SUBSTRING(@[User::V_LoadFileName],15,2)+''+SUBSTRING(@[User::V_LoadFileName],17,4))

Какие-либо предложения?

2 ответа

Строка для приведения к дате в SSIS должна быть YYYY-MM-DD.
Если вы хотите привести String к Datetime, это должно быть ГГГГ-ММ-ДД ЧЧ: MIS: SS.

Причиной для форматированных данных в ответе Ferdipux является то, что ваша среда может не использовать тот же стиль DATE (т.е. ГГГГ / ММ / ДД и ГГГГ / ДД / ММ).

Кроме того, в вашем примере есть проблемы с синтаксисом. Кастинг в SSIS немного странный. Вы закрываете круглые скобки ДО переменной.

(DT_BOOL)"0" возвращается FALSE

Обратите внимание также на использование ДВУХ цитат в SSIS. Так что вам, скорее всего, придется использовать '"' в вашем скрипте работать.

Некоторые примеры приведения в SSIS:

( «type» ) «expression» (DT_I4) (DT_STR, «length», «codepage» ) (DT_DATE) (DT_BOOL) (DT_WSTR, «length» ) (DT_NUMERIC, «precision», «scale» ) (DT_DECIMAL, «scale» ) (DT_DBTIMESTAMP)

Наконец, если вы можете, используйте Expression Tester. Сделал жизнь ДЕЙСТВИТЕЛЬНО легкой для меня при разработке собственных пакетов служб SSIS.: D

http://expressioneditor.codeplex.com/

Другие вопросы по тегам