2012-05-23 5 views
1

Итак, я создал переменную «пакет» с datatype datetime. Теперь мой источник OLEBD имеет столбец «addDate», например, 2012-05-18 11: 11: 17.470, так что пустой пуст, который должен быть заполнен.SSIS: сравнение даты и времени с переменной

теперь эта колонка addDate имеет много дат, и я хочу, чтобы скопировать все даты, которые являются «2012-05-18 11: 11: 17,470»

Когда я ставлю значение переменной в качестве этой даты, она автоматически изменяет до mm/dd/yyyy hh; mm формат AM и, следовательно, в моем условном преобразовании разбиения, он не мог соответствовать дате с переменной и, следовательно, никакие записи не копируются в пункт назначения !!

Где именно проблема?

Спасибо!

ответ

0

Я нашел более легкое решение. Выберите тип данных как строку. введите любое требуемое значение. Перед условным расколом вам понадобится преобразование преобразования данных. преобразуйте его в DT_DBTIMESTAMP, затем запустите пакет.

Это работает!

0

У меня была эта проблема, и лучшее решение, которое я нашел, не «красиво». В основном вам нужно изменить «выражение» переменной и «оценивать как выражение» на true (иначе оно будет игнорировать значение выражения).

Секрет (и по той причине, что я сказал, что это не очень хорошее решение), чтобы создать вторую переменную для оценки выражения первой переменной, поскольку вы не можете изменить значение переменной на основе выражения ,

Итак, ваша переменная называется «DateVariable» и у вас есть 23/05/2012, создать переменную с именем «DateVar2», например, и установить его выражение

(DT_WSTR, 4) YEAR (@ [User: : DateVariable]) + "/" + RIGHT ("0" + (DT_WSTR, 2) MONTH (@ [User :: DateVariable]), 2) + "/" + RIGHT ("0" + (DT_WSTR, 2) ДЕНЬ (@ [User :: DateVariable]), 2)

Это даст вам 2012/05/23

Просто продолжайте получать дату в нужном формате

Смежные вопросы