从SQL Server中的文本文件到日期时间的日期数据

时间:2012-10-19 17:26:58

标签: sql sql-server sql-server-2008 ssis

我使用一个平面文件作为源,其中有几列属于Date格式,我已将所有数据放入预定义的SQL Server表中。

实施例: -

平面文件

CaseNO|CaseType|CDate
1     |ORG     |1\12\2012
2     |PGD     |3\3\2011

这里当我用数据查看器检查时,它看起来像2012-12-1 00:00:00.0000000。但OLE DB连接会产生以下错误。

[OLE DB Destination [7546]] Error: There was an error with input column 
"CDate" (8799) on input "OLE DB Destination Input" (7559). The column status
returned was: "The value could not be converted because of a potential loss of data.".

请指导我......感谢你的帮助。

343

2 个答案:

答案 0 :(得分:0)

这可能是因为反斜杠。在转换之前尝试用“/”替换“\”。

这也可能是日期格式问题。根据整理等设置,“1/2/2012”可以解释为1月2日或2月1日。这不会导致问题,但是像“1/31/2012”之类的东西可能会导致错误的类型转换错误整理,因为没有一个月31。

答案 1 :(得分:0)

看起来您已经将数据暂存到sql server表中。使用SQL命令而不是选择OLEDB源中的表。写下查询如下并映射到目的地。

SELECT Id,CaseType,convert(datetime,CDATE,101)as Cdate from

如果直接使用平面文件加载到目标表。你应该使用派生列转换来解析它,提到格式[dd / mm / yyyy]并转换为datatime。

谢谢, Gowdhaman