如何在SSIS中从文件名中获取日期



我有SSIS包与数据流任务和执行SQL任务组件在每个循环容器。包流是,日期流任务(平面文件——>执行SQL任务(对插入的数据执行一些SQL操作,并将计算出的值插入到一个最终分析表中)。文件名如name1_name2_yyyymmdd_1234.txt。我想从文件名中获取日期,并在SQL Server表中插入日期值作为FileDate。我试图使用派生列做到这一点,但无法确定我将在哪里保存它,以便在执行数据流任务之后的SQL任务中的插入语句中可用。

这应该在数据流之外,但在ForEach循环中完成。

向脚本任务传递两个参数(包范围)。一个是来自forloop的@filename(只读),另一个是用于存储@fileDate(读/写)。

Split将创建一个基于0的数组,其中您只关心第三部分。

Dts.Variables["fileDate"].Value = DateTime.ParseExact(Dts.Variables["fileName"].Value.Split('_')[2]
,"yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture);

现在你可以在任何你想要的地方使用@fileDate。

最新更新