SQL Server 2008 R2 Expressの特定のインスタンスでロケールに問題が発生しています。ロケールによる文字列のdatetimeへの変換エラー
私は英国にいると、次は失敗します。
SELECT CAST('2012-12-31' AS DATETIME)
エラーメッセージ:
datetimeデータ型にvarcharデータ型の変換は、アウトオブになりました範囲値。
Windowsサーバーのロケールは英国英語です。ログインロケールは英国英語です。照合が '問題の場合'はLatin1_General_CI_ASです。
データベース 'language'は英語(米国)ですが、これは別のサーバー上の別のインスタンスと同じであり、上記のSQLは失敗しません。
どのような考えですか?あなたが明示的にこのケースでは、あなたの変換に日付フォーマットを定義する必要があり
解決策は、すべてのユーザーを同じ言語にすることに同意しません。言語が他の目的に使用されているため、意図的に設定されているとしたらどうでしょうか?新しいユーザーが作成されるたびにコードを修正するまでコードが失敗することがあるため、各ユーザーの修正は面倒です。コードを修正すると、問題が修正されます。 –
これはすべてのユーザーに適用されるわけではありません。これはSQLログインアカウント – jglouie
用です。新しいSQLログインアカウントを追加し、その言語がBritishに設定されているときに、コードが何をやり直すのか推測してください。 –