sql >> データベース >  >> RDS >> Sqlserver

System.Data.SqlTypes.SqlTypeException:SqlDateTimeオーバーフロー

    マットはおそらく正しい方向に進んでいます。列のデフォルト値を定義しましたが、これはデータベースのテーブルに実際に何かを挿入した場合にのみ有効になります。

    あなたが言うように、ユニットテストを行うとき、あなたはおそらくDateTime変数を何かに初期化し(またはそうではない-それはDateTime.MinValue、つまり01/01/0001になるでしょう)そしてそれをSQLServerに送信しますこの値は、SQL ServerのDATETIMEの有効範囲外です(エラーに明確に示されています)。

    したがって、実行する必要があるのは、.NET単体テストに行を追加して、DateTime変数を「DateTime.Today」に初期化することです。

    DateTime myDateTime = DateTime.Today
    

    次に、それをSQLServerに挿入します。

    または:SQL INSERTステートメントを変更して、その列の値を挿入しないようにすることができます-今のように見えますが、そうします(そして、SQL Serverの場合-無効な日付をテーブルに挿入しようとします)。 INSERTでその列を指定しない場合、列のデフォルトはgetdate()です。 キックインして、今日の日付を列に挿入します。

    マーク



    1. PostgreSQLトリガーとストアド関数の基本

    2. mysqliの複数のクエリ-変数を設定するとブールエラーが発生します/これをスキップする方法は?

    3. データ型xmltypeの列でora_hashを使用する方法

    4. MYSQLテーブルに新しい列を追加するにはどうすればよいですか?