gpt4 book ai didi

sql-server-2005 - SQL Getdate 的精度?

转载 作者:行者123 更新时间:2023-12-02 00:39:06 26 4
gpt4 key购买 nike

我正在试验一个以高速将数据插入 SQL 2005 Server 数据库(在 XP SP3 上)的程序。 (这是为了收集时序数据,以便我可以评估我设计的不同方面)。

我的基本设置包括将数据插入到如下表中(并使用仅指定有效负载字段的 SP):

create table data
(
Id int PRIMARY KEY Identity,
payload datatime not null,
inserted datetime default (getdate()) not null
)

请注意,两个日期时间字段也都具有 UNIQUE 约束。

在客户端程序上,我在如此紧密的循环中调用 SP,以至于我遇到了 .Net DateTime.Now 值的精度问题(也可能是线程休眠),因此违反了有效负载的唯一约束。我通过一个秒表变量、一点 Thread.Sleep() 和手动构建“有效负载”数据的组合来解决,这样它就不会违反 SQL DateTime 字段的分辨率(3.3 毫秒)

但是,随着插入以 5mS 和 10mS 之间的速率生成,我开始看到 SQL 端的“已插入”字段存在问题,其中一行因唯一键违规而被定期拒绝。只有当我将插入速率降低到超过 15 毫秒左右时,这个问题才会消失。这个速度有点像我在.Net DateTime.Now 中遇到的精度问题(我在某处的帖子上读到了 16 毫秒),所以我想知道 SQL Getdate() 函数的实际精度是多少。

那么有人可以告诉我支持 GetDate() 的是什么,它会与 .Net DateTime.Now 值绑定(bind)到相同的源吗?我应该期待什么样的精度?

顺便说一句,我知道 SQL 2008 服务器中的 DATETIME2 类型,因此提出了一个问题,即该系统中 GetDate() 的精度是多少。

最佳答案

DATETIME 的精度为 3.3 毫秒,但 GETDATE() 不会像您发现的那样返回精确到此的时间。查看 MSDN page for date/time types/functions有关新类型/功能如何工作的更多信息。

关于sql-server-2005 - SQL Getdate 的精度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3380109/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com