小编Kel*_*yne的帖子

Datetime2 舍入问题

我们正在开发一个多数据库应用程序(读取和写入多个数据库)。数据库上的数据模型是相同的。

我们在 MSSQL 的 datetime2(6) 列中插入一个时间戳(12 个小数位)值,但是 MSSQL 对该值进行舍入,使其与忽略额外小数位的其他数据库不同。

例子:

DECLARE @t TABLE(x DATETIME2(6)) 
INSERT @t SELECT '2017-03-28 14:00:59.4106489'
SELECT x FROM @t
Run Code Online (Sandbox Code Playgroud)

结果:2017-03-28 14:00:59.41064 9 预期:2017-03-28 14:00:59.41064 8

DB2 通过丢弃第 7 个小数位来提供预期结果。

我们怎样才能让MSSQL不舍入datetime2值?

编辑

该应用程序将具有 12 个小数位的 java.sql.Timestamp 对象写入 DB2 和 MSSQL。在 DB2 中,该列是 TIMESTAMP(6),在 MSSQL 中是 DATETIME2(6)。DB2 从 12 位小数位截断为 6 位。MSSQL 向下舍入为 6 位。

sql-server datetime2

6
推荐指数
1
解决办法
2370
查看次数

标签 统计

datetime2 ×1

sql-server ×1