sql-server-2005 - SSIS 中的 Oracle 到 SQL 2005 DATETIME 字段溢出

标签 sql-server-2005 oracle datetime ssis

我正在使用 SSIS 将数据从 Oracle 导入到 SQL Server 2005。我认为 Oracle 中的日期时间字段的存储精度高于 SQL Server 2005“DATETIME”字段所允许的精度,从而导致溢出错误。将表格放入的最佳做法是什么?

这些表有很多日期时间字段,并且有很多表,所以如果每个字段没有大量的手动工作,那就太棒了......

我读过 https://stackoverflow.com/questions/2231028/dealing-with-timestamp-datetime-when-copying-data-from-oracle-to-sql-server-using这可行,但我必须对每个字段、每个表都这样做,而且我宁愿有一个通用的设置或流程...

有什么想法吗?

最佳答案

这里的问题是 SQL Server 的有效日期是有限的(1753 年 1 月 1 日到 9999 年 12 月 31 日),而 Oracle 的日期是从公元前 4712 年 1 月 1 日到 9999 年 12 月 31 日。所以任何日期在Oracle 小于 1753 年 1 月 1 日将溢出 datetime sql server 数据类型。

如果升级到 Sql 2008,您可以使用 Datetime2 类型来帮助解决这个问题,因为它的有效日期从 0001-01-01 到 9999-12-31。

在此处查看详细信息:Sql Server Date and Time types

这里:Oracle Date Type

关于sql-server-2005 - SSIS 中的 Oracle 到 SQL 2005 DATETIME 字段溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4610330/

相关文章:

sql - 如何在包含数据的表上创建序号列索引

.net - SQL NOT IN 子句

oracle - Visual Studio - 在配置中找不到指定的商店提供者,或者是无效的

java - SSL:400 未发送所需的证书

sql - SQL 2005中检查外键是否存在的方法

sql - 如果您采用 SQL 查询并对其自身执行 UNION,什么会导致语法错误?

sql - Oracle: `(+)` 在 WHERE 子句中起什么作用?

datetime - 使用 Play Framework 中的 YAML 文件将初始数据保存为日期格式(如 2012-02)

php - 从本周的订单表中提取记录

c# - 将数据从(大)文件 Excel 导入到 datagridview,然后导入数据库 - 为什么插入到数据库需要这么长时间并且不保存所有数据?