我有一个SSIS要求:
我有三个Excel文件,文件名的日期不同,保存在一个文件夹中。
文件夹路径:D:\SourceFolder\
文件名:Asia_Sale_07May2018.xlsx
,Asia_Sale_20Jun2018.xlsx
,Asia_Sale_15Aug2018.xlsx
我的软件包参数日期为07/15/2018
。
要求:处理文件名称为date =参数日期的文件。
如果我将参数日期设置为07/15/2018
,则程序包应该选择并加载Asia_Sale_15Aug2018.xlsx
如果我将参数日期设置为06/20/2018
,则程序包应该选择并加载Asia_Sale_20Jun2018.xlsx
如果我将参数日期设置为05/07/2018
,则程序包应该选择并加载Asia_Sale_07May2018.xlsx
谢谢, 艾曼
答案 0 :(得分:2)
1。使用ForEach循环浏览文件,获取FileName,然后使用Substring仅获取日期部分(在您的情况下为07May2018 / 20Jun2018 / 15Aug2018)。使用转换功能将其转换为所需的格式。
select convert(varchar,convert(date,'15Aug2018'),101)
2。在控制流中使用优先级约束,该优先级约束将比较两个值并在文件匹配时加载文件。
答案 1 :(得分:-1)
我将建立您要查找的文件的名称,并使用foreach循环查找该特定文件。
为此的C#逻辑是:
DateTime dt = DateTime.Parse("1/1/2018"); //Just set from your parameter
string str_dt = dt.ToString("ddMMMyyyy");
string fname = "Asia_Sale_" + str_dt + ".xlsx";
一旦知道了,就使用变量检查文件的foreach循环。