sql server时间戳转为时间格式出现误差

1.本来想把mongo的时间戳转为sqlserver的时间类型,但在转的过程中发现毫秒的地方会出现误差,比如mongo中的时间戳为:1656923140698,对应的mongodb时间为:2022-07-04T08:25:40.698Z,但是sqlserver的时间却为:2022-07-04 16:25:40.697,即少了一毫秒。
测试语句:
DECLARE @UNIXTIME BIGINT
SET @UNIXTIME = 1656923140698
SELECT DATEADD (MS ,@UNIXTIME % 60000 ,DATEADD(MI,@UNIXTIME / 60000,'1970-01-01 08:00:00.000'))

2.进而用dateadd方法测试:
select dateadd(ms,698,'2022-07-04 16:25:40.000')
而结果为:
2022-07-04 16:25:40.697,为啥不是2022-07-04 16:25:40.698呢?

有熟悉这方面的专家吗?希望能解释答疑下,谢谢了!

回答

C# 是 698

var dt = DateTimeOffset.FromUnixTimeMilliseconds(1656923140698).ToString("yyyy-MM-dd HH:mm:ss.fff");
Console.WriteLine(dt);
以上是sql server时间戳转为时间格式出现误差的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>