一部のエンド ユーザーが Windows 10 にアップグレードするまで、WinForms プログラムで次の SQL クエリを長い間問題なく使用してきました。
「エラー [22007] [Microsoft] [SQL Server Native Client 11.0] [SQL Server] varchar データ型から datetime データ型への変換により、範囲外の値が発生しました。」」という例外が突然発生します。
このエラーは以前にここに投稿されていましたが、発生が Windows 10 のアップグレードに関連しているという投稿は見つかりませんでした。
このクエリは、Native Client 11 を使用して SQL サーバー 2012 を対象としています。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;
DateTime フィールドが使用される唯一の場所は Where 句であり、クエリは Windows 8 クライアントを使用して同じ DB に対して正常に機能します。どちらのクライアントも Einglish Windows バージョンを実行します。もう 1 つの興味深い観察結果は、クエリが Windows 10 マシン上の Microsoft SQL Management Studio から受け入れられることです。ただし、ネイティブ クライアント経由ではありません。フィルターで使用される日付は、GUI を介してプログラムで作成されます。
他の誰かが Windows 10 のネイティブ クライアントで奇妙なことを経験したことがありますか、またはこの問題を解決する方法について誰か提案がありますか?