我正在使用SSIS 2013,我正在使用字符串变量来存储从文件创建的日期...
我的问题是我要获得字符串值Jan 25 2018 12:00:00
,当我将数据加载到数据库中时,列需要字符串值2018-01-25
。如何在派生列任务中转换变量?
使用派生列
根据此Microsoft文章:
将字符串施放到dt_date,反之亦然时,使用转换的位置。但是,该日期为Yyyy-MM-DD的ISO格式,无论该语言环境偏好是否使用ISO格式。
因此,您可以简单地在派生列中使用以下表达式:
SUBSTRING( (DT_STR,50, 1256)(DT_DATE)[DateColumn], 1, 10)
使用脚本组件
假设inDate
是输入列,而OutDate
是输出列
using System;
using System.Globalization;
CultureInfo provider = CultureInfo.InvariantCulture;
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
Row.outDate = DateTime.ParseExact(Row.inDate,"MMM dd yyyy HH:mm:ss",provider).ToString("yyyy-MM-dd");
}