SSIS 从文件名获取日期

SSIS Get Date from a File Name

我的文件名为...文件 - 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,然后我将添加一个数据转换以将其转换为日期

它不起作用..请有任何想法

尝试脚本任务

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));

所以变量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

把它变成一个日期比较棘手。

这解释了如何做

How to convert string in format yyyyMMdd to date using SSIS expression?