Select 查询在有效日期产生 SqlDateTime 溢出
Select query produces SqlDateTime overflow on valid dates
我有一个问题:在像 SELECT * FROM table
这样的简单 select 上随机返回 SqlDateTime 溢出错误(返回该错误后几次正常;之后它再次工作几次并且再次返回该错误后) - 错误发生在同一行(使用相同的连接时) - 如果我打开和关闭 MGMT Studio,错误发生在不同的行。
确切的错误消息是:
An error occured while executing batch. Error message is: SqlDateTime
overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59
PM.
Table 有 3 个日期时间列:
- DTcolumn1 - 可以为空,没有默认值
- DTcolumn2 - 不能为空,默认值 ('1800-01-01')
- DTcolumn3 - 可以为空,没有默认值
所有 3 个 DateTime 列中的值看起来都很好(为空或在允许的间隔内)。
Table还有一些varchar等其他类型的列。如果我按这 3 个 DateTime 列之一添加顺序(经过经验测试),select 查询更有可能更频繁地失败。
数据库的排序规则是 Slovenian_CI_AI
。
导致此错误的原因是什么(如我所说 - DateTime 值似乎没问题)?
提前致谢!
编辑 1 (2016-05-09):我之前忘了提:错误发生在 SQL MGMT Studio 和代码中(使用 LINQ to SQL).
编辑 2 (2016-05-10):似乎存在不同的问题 - 在每个 table 上,如果超过 10000 条记录,它就会抛出一些愚蠢的问题错误。在其他 table 上它抛出:
An error occurred while executing batch. Error message is: Internal
connection fatal error.`
它还会断开我与数据库的连接(在底部状态行中显示 已断开连接)。 SQL 服务器安装在本地网络内部的远程服务器上。
我们的管理员发现,问题出在 DNE LightWeight 过滤器。如果这个怪物被禁用,一切都会按预期工作(不会随机断开连接并出现奇怪的错误)。
如果您转到控制面板/网络和共享中心/更改适配器设置,您可以禁用它。右键单击您的网络设备和 select 属性 。 Deselect DNE 轻量级过滤器.
我有一个问题:在像 SELECT * FROM table
这样的简单 select 上随机返回 SqlDateTime 溢出错误(返回该错误后几次正常;之后它再次工作几次并且再次返回该错误后) - 错误发生在同一行(使用相同的连接时) - 如果我打开和关闭 MGMT Studio,错误发生在不同的行。
确切的错误消息是:
An error occured while executing batch. Error message is: SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.
Table 有 3 个日期时间列:
- DTcolumn1 - 可以为空,没有默认值
- DTcolumn2 - 不能为空,默认值 ('1800-01-01')
- DTcolumn3 - 可以为空,没有默认值
所有 3 个 DateTime 列中的值看起来都很好(为空或在允许的间隔内)。
Table还有一些varchar等其他类型的列。如果我按这 3 个 DateTime 列之一添加顺序(经过经验测试),select 查询更有可能更频繁地失败。
数据库的排序规则是 Slovenian_CI_AI
。
导致此错误的原因是什么(如我所说 - DateTime 值似乎没问题)?
提前致谢!
编辑 1 (2016-05-09):我之前忘了提:错误发生在 SQL MGMT Studio 和代码中(使用 LINQ to SQL).
编辑 2 (2016-05-10):似乎存在不同的问题 - 在每个 table 上,如果超过 10000 条记录,它就会抛出一些愚蠢的问题错误。在其他 table 上它抛出:
An error occurred while executing batch. Error message is: Internal connection fatal error.`
它还会断开我与数据库的连接(在底部状态行中显示 已断开连接)。 SQL 服务器安装在本地网络内部的远程服务器上。
我们的管理员发现,问题出在 DNE LightWeight 过滤器。如果这个怪物被禁用,一切都会按预期工作(不会随机断开连接并出现奇怪的错误)。
如果您转到控制面板/网络和共享中心/更改适配器设置,您可以禁用它。右键单击您的网络设备和 select 属性 。 Deselect DNE 轻量级过滤器.