SSIS Find&反转功能

时间:2017-05-16 01:59:56

标签: sql-server ssis expression etl

我正在尝试使用ssis表达式从以下文件名中获取日期。我从变量中获取此文件名

我尝试过使用findstring和reverse函数,但它仍然无法解析。

任何建议请

可变

@[User::CurrentFile] : Z:\RETAIL DATA\HN_NLG\Supplier_report_by_Brand_Trend Micro_WC_20170327.xlsx

需要获取20170327并转换为2017-03-27

提前致谢

2 个答案:

答案 0 :(得分:2)

您可以使用LEFTRIGHT以及SUBSTRING来实现此目的,使用以下表达式来获得预期的输出:

SUBSTRING(LEFT(right(@[User::CurrentFile],13),8),1,4) + "-" + SUBSTRING(LEFT(right(@[User::CurrentFile],13),8),5,2) + "-" + SUBSTRING(LEFT(right(@[User::CurrentFile],13),8),7,2)

如果@[User::CurrentFile] = 'Z:\RETAIL DATA\HN_NLG\Supplier_report_by_Brand_Trend Micro_WC_20170327.xlsx'您将获得2017-03-27

答案 1 :(得分:1)

尝试类似下面的内容,可以在exec sql任务或脚本中,并将其分配给变量以便进一步使用。

 select Cast(CONVERT(date,
  Reverse(Substring(Reverse('Z:\RETAIL DATA\HN_NLG\Supplier_report_by_Brand_Trend Micro_WC_20170327.xlsx'),
 CHARINDEX('.',Reverse('Z:\RETAIL DATA\HN_NLG\Supplier_report_by_Brand_Trend Micro_WC_20170327.xlsx'),1)+1,
8))) as varchar(10))