这是我的基本“测试”
select DATEADD(ms,-2,DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0))
, DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0)
,case when DATEADD(ms,-2,DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0)) != DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0) then 'No Match' else 'Match' end
union all
select DATEADD(ms,-1,DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0))
,DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0)
,case when DATEADD(ms,-1,DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0)) != DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0) then 'No Match' else 'Match' end
我试图理解为什么MS -2,减去3和MS -1减去没有。
答案 0 :(得分:13)
MSSQL的datetime
数据类型具有最佳粒度.00333333(重复),或大约3毫秒。小于此值的变化将导致无变化或舍入为3。
来自https://msdn.microsoft.com/en-us/library/cc280460.aspx
datetime2(3)的精度为1毫秒,而datetime的精度为1毫秒 精度为1/300秒。