Дата получения SSIS из имени файла - PullRequest
0 голосов
/ 09 октября 2018

Мой файл называется ... Файл - 20170101.xlsx

В качестве переменной у меня есть следующее

FilePath, строка типа данных, Файл - 20170101

какпроизводный столбец у меня есть

(DT_I8)LEFT(RIGHT(@[User::FilePath],8),4)

Я получил это, чтобы работать, но только дает мне часть значений .. (только 3 числа, мне нужно 8)

дает мне вывод 101.. мне нужно сохранить имя файла в другом формате даты?Я пробовал Файл - 01012017

Я пробовал это, но это не работает

(DT_I4)LEFT(RIGHT(@[User::FilePath],8),4)

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

это не работает .. любые идеи, пожалуйста

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

То есть значение переменной FilePath равно , а не File - 20170101, как вы сказали, это File - 20170101.xlsx верно?

Пожалуйста, будьте внимательны при написании вашего вопроса.

Вы можете решить эти проблемы самостоятельно, немного поэкспериментировав.

Во-первых,

RIGHT(@[User::FilePath],8) 

дает вам

101.xlsx

Следовательно,

RIGHT(@[User::FilePath],13) 

даст вам

20170101.xlsx

и

LEFT(RIGHT(@[User::FilePath],13),8)

даст вам

20170101

Превратить это в дату сложнее.

Это объясняет, как это сделать

Как преобразовать строку в формате yyyyMMdd в дату, используя выражение SSIS?

0 голосов
/ 09 октября 2018

попробуйте выполнить задачу скрипта

string fpath=""; //Set your filepath here

string fname = System.IO.Path.GetFileNameWithoutExtension(fpath);

DateTime dt = DateTime.Parse(fname.Substring(5, 2) + "/" + fname.Substring(7, 2) + "/" + fname.Substring(1, 4));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...