Производный столбец служб SSIS для добавления первых 3 значений текущего года (ГГГ) к строковой дате (ММДДГ)

У меня есть строковое значение даты, в котором отсутствует 201 из 2019 года. Строковое значение 03189101545, которое должно быть 03-18-(201)9 10:15:45

Я сделал слева от переменной серийного номера, чтобы извлечь 03189, и не могу понять, как добавить обратно полный год.

LEFT([Serial Number],5)

Я пробовал литье на сегодняшний день, но это не удается.

(DT_DBTIME)LEFT([Serial Number],5)

Я думал о том, чтобы сделать

(DT_DATE) DATEADD("yyyy", 0, (LEFT([Serial Number],5)))

но, похоже, это та же проблема, что и проблема с броском.


person Neil B.    schedule 26.02.2020    source источник


Ответы (1)


Попробуйте использовать следующее выражение, оно преобразует строку в формат ISO yyyy-MM-dd HH:mm:ss, а затем преобразует ее в дату:

(DT_DATE)("201" + SUBSTRING([Serial Number], 5,1) + "-" +
    LEFT([Serial Number], 2) + "-" +
    SUBSTRING([Serial Number], 3,2) + " " +
    SUBSTRING([Serial Number], 6,2) + ":" +
    SUBSTRING([Serial Number], 8,2) + ":" +
    RIGHT([Serial Number], 2))

Если вы хотите добавить только 201 к существующему значению, используйте:

LEFT([Serial Number], 4) + "201 + RIGHT([Serial Number], 7)
person Hadi    schedule 27.02.2020
comment
Потрясающе, спасибо! Я ценю два подхода к этому вопросу. - person Neil B.; 27.02.2020