字符串日期为YYYY-MM-DD字符串格式

时间:2018-02-20 21:26:52

标签: sql-server tsql datetime ssis etl

我正在使用SSIS 2013,我使用字符串变量来存储从文件创建的日期......

我的问题是我得到字符串值2018-01-25,当我将数据加载到数据库时,列需要字符串值Animal。如何在派生列任务中转换变量?

1 个答案:

答案 0 :(得分:0)

使用派生列

根据Microsoft article

  

当字符串强制转换为DT_DATE时,反之亦然,则使用转换的语言环境。但是,无论区域设置首选项是否使用ISO格式,日期都采用ISO格式YYYY-MM-DD。

因此,您只需在派生列中使用以下表达式:

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");
}