【问题标题】:How can I add exactly 1 millisecond?如何准确添加 1 毫秒?
【发布时间】:2012-03-21 12:44:57
【问题描述】:
select getdate(),DATEADD(millisecond,1,getdate())

给我同样的答案....如何精确地添加 1 毫秒?

我不能使用datetime2 字段。

【问题讨论】:

标签: sql-server-2005


【解决方案1】:

如果您需要如此高的精度,则需要单独存储毫秒。在 SQL Server 2005 中,没有本机日期/时间类型可以让您比 ~3 毫秒更精确。这就是为什么,例如,一天中的最后一次时间是 23:59:59.997,而不是 0.998 或 0.999。

【讨论】:

    【解决方案2】:

    你不能。 datetime 的精度为 3.33 毫秒。

    Date and Time

    【讨论】:

      【解决方案3】:

      DATETIME类型的分辨率不足以满足你的需求;根据the documentation,它是:

      四舍五入到 0.000、0.003 或 0.007 秒的增量

      【讨论】:

        【解决方案4】:

        我认为你不能,因为DateTimes 在内部表示为浮点数,而 1 毫秒不能表示为 float

        详情请参考答案to this question

        【讨论】:

        • 确实你不能,但不是因为给出的确切原因。 SQL Server 将datetime 存储为 2 个整数,一个用于日期部分,一个用于时间。时间存储为ticks,每个刻度为1/300 秒,因此它仅与内部表示有关,与float 无关
        猜你喜欢
        • 2020-03-01
        • 1970-01-01
        • 2012-08-06
        • 1970-01-01
        • 2017-02-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-07
        相关资源
        最近更新 更多