在SQL上使用smalldatetime比较的30秒偏移量

时间:2018-05-24 20:31:37

标签: sql sql-server datetime smalldatetime

我在比较SQL Server中的日期(实际上是smalldatetime)时遇到了一个奇怪的问题。在比较接近当天结束的日期时,似乎有30秒的偏移/偏差:

这是正确的:

enter image description here

但这绝对不正确:

enter image description here

这里发生了什么?数学坏了吗?

2 个答案:

答案 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],您会看到以下注释:

https://docs.microsoft.com/en-us/sql/t-sql/data-types/smalldatetime-transact-sql?view=sql-server-2017

  

准确度一分钟

换句话说,字面值正在四舍五入。结果,你看到的不是你得到的东西。