1

下午好,

我有一个我无法弄清楚的困境。我正在尝试在 SQL 数据库表中导入平面文件,但遇到了问题。我在 SQL 中的列是出生日期 DOB 的日期时间列。提供给我的提取平面文件将此列作为日期...因此当我导入 SQL 时,我得到:

Messages
Error 0xc0202009: Data Flow Task 1: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available.  Source: "Microsoft SQL Server Native Client 10.0"  Hresult: 0x80004005  Description: "Invalid date format".
 (SQL Server Import and Export Wizard)

Error 0xc020901c: Data Flow Task 1: There was an error with input column "DOB" (212) on input "Destination Input" (147). The column status returned was: "Conversion failed because the data value overflowed the specified type.".
 (SQL Server Import and Export Wizard)

Error 0xc0209029: Data Flow Task 1: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR.  The "input "Destination Input" (147)" failed because error code 0xC020907A occurred, and the error row disposition on "input "Destination Input" (147)" specifies failure on error. An error occurred on the specified object of the specified component.  There may be error messages posted before this with more information about the failure.
 (SQL Server Import and Export Wizard)

我试图弄清楚如何将 00:00:00.000 之类的随机时间添加到平面文件中的每个 DOB 中。例如,他们发送给我 1983-11-30 但我想使用 1983-11-30 00:00:00.000

有没有办法做到这一点,或者有人知道我能做什么吗?提前致谢

4

5 回答 5

1

yyyy-MM-ddMSSQL 将像您这样的字符串转换为日期没有问题。你会00:00:00.000自动结束。您发布的错误消息“转换失败,因为数据值溢出了指定的类型”表明其中一个日期超出了有效范围。您很可能得到了无效的出生日期(查找0000-00-00记录或类似信息)。如果平面文件以 Excel 可以轻松解析的方式分隔,请将其拉​​入 Excel 并对该列进行排序。查看最小值和最大值,您可能会发现违规记录。

于 2013-02-01T16:34:52.100 回答
1

我的情况有点不同,但我觉得发布它可以帮助其他人。与 OP 不同,我将 Access 2000 mde 文件中的数据导入 sql server management studio,但与 OP 类似,我遇到了“无效数据格式”错误。我知道冲突是由于DateTime访问文件中的类型列与DataTimesql中的格式冲突造成的。

解决方法:在我完成导入数据过程后,在sql server management studio -> Tasks -> Import Data 中右键单击服务器名称,然后选择源(访问)、目标(sql server)和表来完成导入时,我注意到由于类型问题转移了 0 行。但是,在 SQL Server Management Studio 中为我创建了一个表,该表表示我试图从访问表中导入的表。它具有正确的列及其关联的数据类型。

所以我所做的是我右键单击表格以进入设计视图并将列的所有数据类型更改为DataTimejustDate

然后我重新进行了导入数据的过程,并且成功传输了行。

于 2017-07-20T14:52:15.670 回答
0

这是旧的,但我在我的 SSIS 数据流任务中遇到了类似的问题,希望这可能对某人有所帮助:对我来说,解决方案是检查“将源中的空值保留为数据流中的空值”选项平面文件源编辑器窗口(在连接管理器页面中)

于 2015-03-14T23:55:05.390 回答
0

我发现在将数据库从本地 EXPRESS 复制到我的生产服务器时,表定义smalldatetime不是datetime. 在选择表的向导中,您可以选择编辑映射。在那里你可以改变你的数据类型。

于 2018-01-02T23:27:36.723 回答
0

在通过向导导入数据时,我将行的类型从更改datetimedate(在映射中),它对我有用。

于 2020-09-08T08:29:13.333 回答