【问题标题】:SSIS Expression help - Date conversion in dervied columnSSIS 表达式帮助 - 派生列中的日期转换
【发布时间】:2013-12-28 08:03:31
【问题描述】:

我是 SSIS 的新手。我通过创建一些示例包来学习 SSIS。我正在将 .csv 文件中的数据加载到 SQL 服务器表中。在 csv 文件中,我有一列作为 varchar 格式(例如:2012 年 2 月 22 日),但我需要将日期格式转换为 YYYY-MM-DD。您能帮我创建此转换的表达式吗?

如果您需要更多详细信息,请告诉我。

【问题讨论】:

    标签: ssis


    【解决方案1】:

    如果输入格式是22-Feb-2012,下面的表达式应该可以工作(假设你的输入列名是[Col]):

    (DT_WSTR, 4)DATEPART("YEAR", (DT_DATE)[Col]) + "-" +
    RIGHT("0" + (DT_WSTR, 2)DATEPART("MONTH", (DT_DATE)[Col]), 2) + "-"+
    RIGHT("0" + (DT_WSTR, 2)DATEPART("DAY", (DT_DATE)[Col]), 2)
    

    请注意,我在上面的表达式中添加了换行符以使其更易于阅读。如果您尝试将其粘贴到派生列表达式中,它只会粘贴第一行。

    另外,请注意此表达式将值转换为 DT_DATE 3 次。执行数据转换以将您的 varchar 列转换为 DT_DATE,然后在派生列中执行其余逻辑可能更有效。或者您可以对日期和年份进行字符串操作(假设采用 2 位数的日期格式,例如 01):

    RIGHT(Col,4) + "-" + 
    RIGHT("0" + (DT_WSTR,2)DATEPART("MONTH",(DT_DATE)Col),2) + "-" + 
    SUBSTRING(Col,1,2)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-15
      • 1970-01-01
      • 1970-01-01
      • 2019-08-18
      • 1970-01-01
      相关资源
      最近更新 更多