我试图通过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
插入。
尝试在数据库中以正确的格式获取日期,但都是徒劳的。
请建议如何解决此问题。
提前致谢。
答案 0 :(得分:0)
示例如何操作,示例数据:
2.然后转换为Ms Sql Date格式:
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))
结果:
答案 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))