【问题标题】:SSIS convert string to dateSSIS将字符串转换为日期
【发布时间】:2016-11-04 21:52:50
【问题描述】:

我是 SSIS 新手,一直在尝试将字符串转换为日期。 我的输入列字符串格式为 MM.DD.yy 10.11.16 我的要求是转换 2016-10-11 yyyy-mm-dd

下面是我尝试过的表达式,但它在目标中加载为 null。

(DT_DATE)(SUBSTRING(FILE_DATE,1,2) + "-" + 
SUBSTRING(FILE_DATE,4,2) + "-" + SUBSTRING(FILE_DATE,7,2))

【问题讨论】:

  • 您的表达式正确返回了DATETIME 值。需要转换为yyyy-mm-dd 的目标列/变量是字符串数据类型吗?
  • 目标列是什么数据类型?如果您在包中添加数据查看器,您会看到什么?

标签: ssis expression


【解决方案1】:

第一种方法

在DataFlowTask中在Source和Destination之间添加一个脚本组件

检查FILE_DATE 作为输入并创建一列outFILE_DATE(类型:DT_DATE)作为输出

在脚本窗口中添加以下代码

Row.outFILEDATE = DATETIME.ParseExact(Row.FILEDATE,"MM.DD.yy",New System.Globalization.CultureInfo("En-GB"))

并将outFILE_DATE 映射到目标列

第二种方法

使用这个表达式:

(DT_DATE)("20" + SUBSTRING(FILE_DATE,7,2) + "-" + SUBSTRING(FILE_DATE,4,2) + "-" + SUBSTRING(FILE_DATE,1,2) )

仅当 Year >= 2000 时才有效

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-14
    • 2013-05-18
    • 1970-01-01
    • 2014-05-24
    • 2021-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多