我正在使用 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