を丸め:マイクロソフトJDBCおよびDATETIME2 - 私たちはこのようたjava.sql.Timestampを作成し、当社のアプリケーションから問題
Timestamp currentTimeStamp = new Timestamp(System.currentTimeMillis());
currentTimeStamp.setNanos((int) (System.nanoTime() % 1000000000));
そしてDB2とMSSQLに対して分散トランザクションに列の値として使用します。
DB2は使用できない桁を取り除き、残りの部分を保管します。
MSSQLは数字を四捨五入して値を格納します。
DECLARE @t TABLE(x DATETIME2(6))
INSERT @t SELECT '2017-03-28 14:00:59.4106489'
SELECT x FROM @t
の検索結果を:
問題は、彼らの両方が6
例の同じ割合の数字は、純粋なT-SQLを使用して再現しているにもかかわらず、二つのデータベースにタイムスタンプ値が異なることになり59.410649期待
::: 2017年3月28日14:00 2017年3月28日14:00:59.410648
あなたの期待は間違っています。分数秒を切り捨てたい場合は、それをJDBCドライバに渡す前に行う必要があります。 –