我们一直在使用中没有任何问题一个WinForms程序很长一段时间了下面的SQL查询,直到一些最终用户升级到Windows 10。
他们突然得到异常:“ERROR [22007] [微软] [SQL Server本机客户端11.0] [SQL服务器] varchar数据类型为datetime数据类型的转换导致超出范围的值。”
这个错误已经被发布到内部早一点,但我没发现哪里发生了连接到Windows 10升级任何职务。
查询的目标是到SQL Server 2012,使用本机客户端11.它适用于Windows 7和8,但在Windows 10抛出异常:
SELECT DISTINCT tblEmployee.EmployeeID, tblEmployee.Lastname, (COALESCE(tblEmployee.Firstname, '') + ' (' + COALESCE(tblEmployee.EmployeeIDText, '') +')' ) AS Firstname
FROM tblEmployee
LEFT JOIN tblAssignmentService ON tblEmployee.EmployeeID = tblAssignmentService.EmployeeID
WHERE tblAssignmentService.ServiceDate >= '2015-08-31 00.00.00'
AND tblAssignmentService.ServiceDate < '2015-09-07 00.00.00'
ORDER BY tblEmployee.Lastname;
其中,日期时间字段使用的唯一地方是在WHERE子句中,和查询工作对同一DB精细与Windows 8客户端。 这两个客户端运行EINGLISH Windows版本。 另一个有趣的现象是,查询是从Microsoft SQL Management Studio中接受Windows 10的机器上。 但不是通过本机客户端。 在过滤器中使用的日期是在我们的程序通过GUI创建的。
具有Windows 10与本地客户端别人经验的奇怪的事情,或者有没有人有一个建议,这个问题怎么可能解决呢?