【发布时间】:2012-03-21 12:44:57
【问题描述】:
select getdate(),DATEADD(millisecond,1,getdate())
给我同样的答案....如何精确地添加 1 毫秒?
我不能使用datetime2 字段。
【问题讨论】:
标签: sql-server-2005
select getdate(),DATEADD(millisecond,1,getdate())
给我同样的答案....如何精确地添加 1 毫秒?
我不能使用datetime2 字段。
【问题讨论】:
标签: sql-server-2005
如果您需要如此高的精度,则需要单独存储毫秒。在 SQL Server 2005 中,没有本机日期/时间类型可以让您比 ~3 毫秒更精确。这就是为什么,例如,一天中的最后一次时间是 23:59:59.997,而不是 0.998 或 0.999。
【讨论】:
你不能。 datetime 的精度为 3.33 毫秒。
【讨论】:
DATETIME类型的分辨率不足以满足你的需求;根据the documentation,它是:
四舍五入到 0.000、0.003 或 0.007 秒的增量
【讨论】:
我认为你不能,因为DateTimes 在内部表示为浮点数,而 1 毫秒不能表示为 float。
详情请参考答案to this question。
【讨论】:
datetime 存储为 2 个整数,一个用于日期部分,一个用于时间。时间存储为ticks,每个刻度为1/300 秒,因此它仅与内部表示有关,与float 无关