我的文件称为...文件-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,然后我要添加数据转换以将其转换为日期
它不起作用..任何想法请
答案 0 :(得分:0)
尝试执行脚本任务
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));
答案 1 :(得分:0)
因此,变量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?