You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DateTime毫秒添加异常:转换结果被舍入是否正常?

SQL DateTime添加毫秒后舍入问题解答

这种情况是正常的,根源在于SQL Server的datetime类型本身不支持精确到毫秒:它的时间精度约为3.33毫秒,时间部分的毫秒值只能是000、333、667这几种固定结尾,任何其他毫秒值都会被自动舍入到最近的有效数值。

举个例子:

  • 尝试添加1毫秒到datetime值,结果会被舍入到000或333结尾
  • 添加2毫秒同理,只有添加3毫秒才会得到333结尾的时间

你的SQL语句:

CONVERT(varchar(125), dateadd(millisecond,ms,datetime), 21) as ZDateTimeMs 

这里的舍入问题和DATEADD、CONVERT函数无关,完全是datetime类型的精度限制导致的。

如果需要精确存储毫秒级时间,建议替换为datetime2类型,它支持最高100纳秒的精度,可以精确存储任意毫秒值,不会出现舍入情况。

内容的提问来源于stack exchange,提问作者user3015739

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 23:55:18