【发布时间】:2012-02-29 14:53:16
【问题描述】:
我正在使用 SQL Server 2008 导入导出向导批量导入文本文件。
文本文件包含超过 90 万条记录,列分隔符为 |,行分隔符/终止符为 {LF}
一切正常,除了在一种情况下:表中有一列的数据类型为datetime,文本文件中的记录很少,日期为01/07/1861、09/08/1865 等,并且向导无法导入这些类型的记录给出错误“无效的日期格式”
谁能帮帮我?
感谢和问候, 普拉提克
更新 -
问题仅在于日期值08/08/1696。
即使我尝试运行如下简单查询:
select convert(datetime,'08/08/1696', 101) 它给出的错误类似于“将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。”
【问题讨论】:
-
Lakh = 100,000 对于像我这样无知的人
-
在平面文件连接管理器中该列定义为什么数据类型? DT_DBDATE、DT_DBTIMESTAMP、DT_DBTIMESTAMP2 等。我现在的猜测是,这不是您选择的 SSIS 日期时间类型的有效范围,但我需要在开始工作后查找类型映射。
-
映射到DT_DBTIMESTAMP
-
目标列定义为什么?日期时间,日期时间2,日期?
-
确实有问题,正如 billinkc 建议的那样。 “08/08/1696”不在 datetime SQL 类型的预期范围内。日期必须介于 '01/01/1753' 和 '31/12/9999' (msdn.microsoft.com/en-us/library/ms187819.aspx) 之间使用 datetime2 代替,从 '01/01/0001' 开始有效
标签: sql-server-2008 import ssis wizard