【问题标题】:SSIS Find & Reverse FunctionSSIS 查找和反向功能
【发布时间】:2017-05-16 01:59:55
【问题描述】:

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

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

有什么好的建议

变量

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

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

提前致谢

【问题讨论】:

    标签: sql-server ssis expression etl


    【解决方案1】:

    您可以使用LEFTRIGHTSUBSTRING 来实现这一点,使用以下表达式得到预期的输出:

    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

    【讨论】:

      【解决方案2】:

      尝试以下类似的方法,可能在 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))
      

      【讨论】:

      • 感谢卡皮尔的帮助
      猜你喜欢
      • 2015-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 2018-11-28
      • 1970-01-01
      • 2010-09-26
      相关资源
      最近更新 更多