SSIS从文件名获取日期

时间:2018-10-09 09:00:09

标签: visual-studio-2010 ssis

我的文件称为...文件-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 :(得分: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?