2011-03-08 3 views
2

nullz datetime 열이있는 테이블에 삽입 할 때 DateTime.MinDate을 삽입하면 오류가 발생합니다.MaxDate를 삽입 할 수 있지만 MinDate를 삽입 할 수없는 이유는 무엇입니까?

"The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value."

그래도 MaxDate는 제대로 작동합니까? 실제로이 값을 null로 삽입하고 싶지만 null 값을 전달하는 PropertyInfo.SetValue()에서 자동으로 MinDate로 설정됩니다. 제안 사항은 무엇입니까?

+0

어떤 DBMS가 있습니까? SQL 서버? –

+0

어떤 프로그래밍 언어와 데이터베이스 시스템을 사용하고 있습니까? – srgerg

+0

죄송합니다 Sql 서버 및 C# – Grace

답변

3

Sql Server DateTime의 범위는 1753-01-01에서 9999-12-31이며, .NET's DateTime은 0001-01-01 12:00:00 자정에서 9999-12-31 11:59:59 P.M입니다.

그래서 DateTime.MinValue은 Sql 서버의 최소값보다 낮지 만 DateTime.MaxValue은 Sql 서버 DateTime에 맞습니다.


사용 nullables : DateTime? 메모리에 널을 가질 수 있습니다.

+0

멋지고 효율적입니다 : S 삽입을 실행할 때 C#을 통해이 값에 일반 old null을 삽입하는 방법은 무엇입니까? – Grace

+0

db의 필드를 null로 설정하고 null 인 경우 값을 전달하지 않습니다. – Pabuc

+0

SqlCommands를 직접 사용하는 경우 null 대신 DBNull.Value를 직접 사용하십시오! – Peter

관련 문제