DateTime
C#では、値型であり、参照型ではないため、nullにすることはできません。ただし、定数DateTime.MinValue
にすることもできます。 これは、SQLServerのDATETIME
の範囲外です。 データ・タイプ。
値の型は、常に明示的に設定する必要がなく、常に(デフォルトの)値(ゼロ)を持つことが保証されています(この場合はDateTime.MinValue)。
結論として、データベースに渡そうとしているDateTime値が設定されていない可能性があります。
DateTime.MinValue = 1/1/0001 12:00:00 AM
DateTime.MaxValue = 23:59:59.9999999, December 31, 9999,
exactly one 100-nanosecond tick
before 00:00:00, January 1, 10000
MSDN: DateTime.MinValue
SQLServerについて
MSDN:SQLServerのDateTimeとSmallDateTime
最後に、C#DateTime
を渡した場合 SQLへの文字列として、最大の精度を維持し、SQLサーバーが同様のエラーをスローしないように、次のようにフォーマットする必要があります。
string sqlTimeAsString = myDateTime.ToString("yyyy-MM-ddTHH:mm:ss.fff");
更新(8年後)
SQL DateTime2
の使用を検討してください .net DateTime
との整合性が高いデータ型 日付範囲0001-01-01 through 9999-12-31
時間範囲00:00:00 through 23:59:59.9999999
string dateTime2String = myDateTime.ToString("yyyy-MM-ddTHH:mm:ss.fffffff");