我在比较SQL Server中的日期(实际上是smalldatetime)时遇到了一个奇怪的问题。在比较接近当天结束的日期时,似乎有30秒的偏移/偏差:
这是正确的:
但这绝对不正确:
这里发生了什么?数学坏了吗?
答案 0 :(得分:4)
smalldatetime
type has a accuracy of one minute所以文字'2019-12-31 23:59:30'四舍五入为'2020-01-01 00:00:00'。
答案 1 :(得分:4)
如果您阅读smalldatetime
的[文档] [1],您会看到以下注释:
准确度一分钟
换句话说,字面值正在四舍五入。结果,你看到的不是你得到的东西。