为什么从 DB2 导出到 MSSQL 数据类型 DATE、DATETIME、TIMESTAMP 时,TIMESTAMP 小数秒会减少 .001,而不是 VARCHAR()

Why is TIMESTAMP fractional seconds off by .001 when exported from DB2 to MSSQL data type DATE, DATETIME, TIMESTAMP not as VARCHAR()

当我将 TIMESTAMP 数据类型从 DB2 导出到 SQL 服务器数据类型 DATEDATETIMETIMESTAMP 时,小数时间关闭了 . 001.如果我导出为数据类型 VARCHAR(),我会得到正确的数据。对此有解释 and/or 解决方案吗?

我已经通过SSIS和PENTAHO导出了。

DB2 2021-10-20-21.31.41.138000

SQL 服务器 2021-10-20 21:31:41.137

提前致谢

你得到的结果完全符合预期。

datetime 精确到 1/300 秒。在 datetime 中最接近 2021-10-20-21.31.41.138000 的是 2021-10-20T21:31:41.136666666666~,它在屏幕上表示为 2021-10-20 21:31:41.137(因为显示值精确到 3 位数字,并且四舍五入)。

如果希望数值精确到1/100000秒,使用datetime2(6),可以精确存储数值2021-10-20T21:31:41.138000