选择查询会在有效日期生成SqlDateTime溢出

时间:2016-05-09 11:48:41

标签: sql-server sqldatetime

我有一个问题:在一个简单的选择如SELECT * FROM table SqlDateTime溢出错误是随机返回的(很少一次它在返回错误后工作正常;之后它再次工作几次,之后再次返回错误) - 同一行发生错误(使用相同的连接时) - 如果我打开和关闭MGMT Studio,则错误发生在不同的行上。

确切的错误信息是:

  

执行批处理时发生错误。错误消息是:SqlDateTime   溢出。必须在1/1/1753 12:00:00 AM和12/31/9999 11:59:59之间   PM。

表有3个DateTime列:

  • DTcolumn1 - 可以为null,没有默认值
  • DTcolumn2 - 不得为null,默认值(' 1800-01-01')
  • DTcolumn3 - 可以为null,没有默认值

所有3个DateTime列中的值看起来都很好(空或在允许的间隔内)。

表还有一些其他的varchar列和其他类型。如果我通过这3个DateTime列中的一个添加顺序(经验测试),则选择查询更有可能更频繁地失败。

数据库的整理是Slovenian_CI_AI

导致此错误的原因(正如我所说 - DateTime值似乎没问题)?

提前谢谢!

编辑1(2016-05-09):我之前忘记提及:SQL MGMT Studio和代码(使用LINQ to SQL)发生错误。

编辑2(2016-05-10):似乎存在不同的问题 - 在每张桌子上超过让我们说10000条记录会引发一些愚蠢的错误。在其他一些桌子上它抛出:

  

执行批处理时发生错误。错误信息是:内部   连接致命错误。

它还会将我与数据库断开连接(在底部状态行中显示已断开连接)。 SQL服务器安装在本地网络内的远程服务器上。

1 个答案:

答案 0 :(得分:0)

我们的管理员发现问题出在 DNE LightWeight Filter 上。如果这个怪物被禁用,一切都按预期工作(没有随机断开与奇怪的错误)。

如果您转到控制面板/网络和共享中心/更改地址设置,您可以将其停用。右键单击您的网络设备,然后选择属性。取消选择 DNE LightWeight过滤器

Link to Server Fault, where I posted the question when we started to believe that this is network related problem.