我们试图从DateTime变量中删除时间:
DECLARE @Date DateTime
SET @Date = '01Jan2013 23:59:59.998'
PRINT DATEADD(dd, 0, DATEDIFF(dd, 0, @Date ))
SET @Date = '01Jan2013 23:59:59.999'
PRINT DATEADD(dd, 0, DATEDIFF(dd, 0, @Date ))
结果:
2013年1月1日12:00 AM
2013年1月2日12:00 AM
为什么01Jan2013 23:59:59.999
会以 1月2日而不是1月1日的形式返回?
答案 0 :(得分:4)
因为在datetime类型中没有.999和.998分数。你只有.990,.993和.997。
所以.998向下舍入到.997,而.999向上舍入。 阅读有关该类型的更多信息。