如何从SSIS Excel文件名解析日期

use*_*045 0 sql ssis sql-server-2005

我想使用foreach容器遍历匹配诸如“ Filename_MMYYYY.xls”之类的文件夹。这很容易做到;但我似乎找不到从文件名解析MMYYYY并将其添加到变量(或某些变量)中的方法,该变量可用作我的DimDate表的查找字段。使用平面文件数据源似乎可行,但不能使用excel连接。我正在使用Visual Studio2005。请帮忙!

Tod*_*mid 5

我是否正确理解您要获取文件名,对其进行解构并从中获取日期类型的变量?如果是这样,那么您需要从从Foreach循环中获取的filename变量开始-我将其称为@FileName。

首先,创建一个新变量-@FileDate-作为DateTime类型。转到其属性窗口(F4),然后将EvaluateAsExpression属性设置为True。编辑表达式,然后输入类似以下内容(您可能需要进行调整):

(DT_DBTIMESTAMP)(SUBSTRING(@FileName,12,4)+“-” + SUBSTRING(@FileName,10,2)+“ -01”)

现在,如果要获取该日期值并在数据流中使用它,则可以直接在“派生列”转换中或在Lookup SQL语句的表达式中或任何地方直接使用它。