0

デフォルトの日付 (開始日と終了日) を ('1/1/1753 12:00:00 AM' & '12/31/9999 12:00:00 AM') として sp に渡しています。

これは 2005 年には正常に機能していましたが、2008 年には「SqlDateTime オーバーフロー。1/1/1753 12:00:00 AM と 12/31/9999 11:59:59 PM の間にある必要があります」という例外が発生しています。

そして、ツイストは、Management studioからspを実行すると正常に動作しますが、Webサイトを介したライブサーバーではエラーが発生するというものです。

前もって感謝します

4

2 に答える 2

3

問題は、異なる環境間でのロケールまたは言語設定の違いである可能性が高いという Ed Harper に同意します。私は彼の修正に同意しません。

これらの日時値をできるだけ早く DateTime 変数に取得し、それらを文字列として扱わないでください。つまり、Web サイトでそれを行い、たとえば ADO.Net に依存して、datetime 値を SQL Server に正しくマーシャリングします。パラメータを日時として期待するようにストアド プロシージャを更新します。基本的に、処理のできるだけ早い段階でパラメータを文字列として扱うのをやめます。

于 2011-05-12T12:14:18.397 に答える
2

DD/MM/YYYYこれは、OS がインストールされたロケール、またはコードが実行されているユーザー アカウントにリンクされたロケールに問題がある可能性があります。MM/DD/YYYY

この問題を回避する最善の方法は、正規の日付形式を使用することですYYYY-MM-DDTHH:MM:SS AM/PMYYYYMMDD HH:MM:SS AM/PMYYYY-MM-DD HH:MM:SS(24h)

于 2011-05-12T12:08:51.617 に答える