1

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

在源 *. csv文件格式为dd-mm-yy.

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

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

例如,如果 .csv 文件中的日期是15-03-13(DD-MM-YY),它将被插入为13-03-2015.

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

请建议如何解决此问题。

提前致谢。

4

2 回答 2

0

示例如何做,示例数据:

在此处输入图像描述

  1. 您需要将列转换为字符串:

在此处输入图像描述

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

在此处输入图像描述

3.派生列代码:

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))

结果:

在此处输入图像描述

于 2013-03-28T08:55:07.610 回答
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))
于 2013-05-10T09:09:10.623 回答