SSIS包日中的日期格式问题转换为年份,年份转换为日期

时间:2013-03-28 08:13:50

标签: sql-server ssis

我试图通过datetime包在SQL Server的SSIS数据类型列中插入日期值。

在源*。csv文件中,格式为dd-mm-yy

当我手动运行SSIS包时,没有错误。 .csv文件DD-MM-YY中的日期格式以DD-MM-YYYY格式成功插入SQL Server数据库。

但是当我在SQL Server Agent中通过Jobs运行相同的包时,它会转换为不正确的日期格式,因为DAY转换为YEAR,YEAR转换为DAY。

例如,如果.csv文件中的日期为15-03-13(DD-MM-YY),则会将其作为13-03-2015插入。

尝试在数据库中以正确的格式获取日期,但都是徒劳的。

请建议如何解决此问题。

提前致谢。

2 个答案:

答案 0 :(得分:0)

示例如何操作,示例数据:

enter image description here

  1. 您需要将列转换为字符串:
  2. enter image description here

    2.然后转换为Ms Sql Date格式:

    enter image description here

    3.Derived Column Code:

    SUBSTRING([Copy of Datee],7,2) + "-" + SUBSTRING([Copy of Datee],4,2) + "-" + SUBSTRING([Copy of Datee],1,2)

    (DT_DATE)(SUBSTRING([Copy of Datee],7,2) + "-" + SUBSTRING([Copy of Datee],4,2) + "-" + SUBSTRING([Copy of Datee],1,2))

    结果:

    enter image description here

答案 1 :(得分:0)

在派生列中,您必须写:

DateReceived == "" ? NULL(DT_DATE) : (DT_DATE)((LEN(RTRIM(DateReceived)) == 10 ? SUBSTRING(DateReceived,7,4) : ("20" + SUBSTRING(DateReceived,7,2))) + "-" + SUBSTRING(DateReceived,4,2) + "-" + SUBSTRING(DateReceived,1,2))