【问题标题】:30 second offset with smalldatetime comparison on SQL在 SQL 上使用 smalldatetime 比较的 30 秒偏移量
【发布时间】:2018-05-24 20:31:37
【问题描述】:

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

这是正确的:

但这绝对是不正确的:

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

【问题讨论】:

    标签: sql sql-server datetime smalldatetime


    【解决方案1】:

    smalldatetime type has a accuracy of one minute 因此将文字“2019-12-31 23:59:30”四舍五入为“2020-01-01 00:00:00”。

    【讨论】:

      【解决方案2】:

      如果您阅读smalldatetime 的[文档][1],您会看到以下说明:

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

      准确度一分钟

      换句话说,字面值被四舍五入。因此,所见即所得。

      【讨论】:

      • 对了,尝试用smalldatetime在表中输入数据:一个值带秒,一个不带。它不会让我用秒来添加值。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-15
      • 1970-01-01
      • 2012-10-09
      • 1970-01-01
      • 2012-05-30
      • 2017-06-19
      • 1970-01-01
      相关资源
      最近更新 更多