Эквивалентное выражение 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