3

我们试图从 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 2013 年 1
月 2 日上午 12:00

为什么01Jan2013 23:59:59.999以1 月2 日而不是 1 月 1 日的形式返回?

4

1 回答 1

4

因为在日期时间类型中没有 .999 和 .998 秒的小数部分。您只有 0.990、0.993 和 0.997。

所以 .998 向下舍入为 0.997,而 0.999 向上舍入。阅读有关该类型的更多信息。

于 2013-03-27T11:58:04.817 回答