Конвертировать DDMMYY в DD-MM-YY в производной колонке служб SSIS - PullRequest
0 голосов
/ 06 апреля 2020

Я столкнулся с проблемой при размещении "-" в типе данных varchar. , Нужно, чтобы после двух последних цифр нам нужно было поставить «-», а затем еще раз после двух цифр и т. Д.

Входная строка is- 21220 Выходная строка- 2-12-20

Или,

Строка ввода - 311220 Строка вывода - 31-12-20

Может кто-нибудь помочь мне в этом?

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

(DT_WSTR, 2) (DT_I4) ВЛЕВО (ВПРАВО ("0" + @ [User :: date], 6), 2) + "-" + SUBSTRING (RIGHT ("0" + @ [User :: дата], 6), 3, 2) + "-" + ПРАВО (@ [User :: date], 2)

0 голосов
/ 07 апреля 2020

Я бы go с компонентом сценария для манипуляции со строками, потому что это гораздо проще сделать и более читабельным.

1) Добавить компонент сценария в качестве преобразования

2) Под столбцы ввода, проверьте столбец даты (я назвал это myDate в приведенном ниже примере)

3) В разделе «Входы и выходы» в разделе «Выход 0» добавьте столбец для новой даты, который называется formattedDate ниже

4) В скрипте измените метод Input0_ProcessInputRow. Перед анализом строки убедитесь, что она не равна нулю. Затем добавьте в ноль «0» слева, чтобы убедиться, что мы всегда имеем длину 6. Выполните синтаксический анализ элементов даты и установите значение для нового столбца.

public override void Input0_ProcessInputRow(Input0Buffer Row)
{
    if (!Row.mydate_IsNull)
    {
        var paddedDate = Row.mydate.PadLeft(6, '0');
        var day = paddedDate.Substring(0, 2);
        var month = paddedDate.Substring(2, 2);
        var year = paddedDate.Substring(4, 2);
        Row.formattedDate = $"{day}-{month}-{year}";
    }
}  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...