DateTime.MinValue and SqlDateTime overflow
Solution 1:
Very simple avoid using DateTime.MinValue
use System.Data.SqlTypes.SqlDateTime.MinValue
instead.
Solution 2:
Basically, don't use DateTime.MinValue
to represent a missing value. You can't use DateTime.MinValue
in a SQL Server DateTime field, as SQL Server has a minimum value of the start of 1753.
Instead, make your BirthDate
property a Nullable<DateTime>
(aka DateTime?
), and set it to null
when you don't have a value. Also make sure your database field is nullable. Then you just need to make sure that that null
ends up as a NULL
value in the database. Exactly how you do that will depend on your data access, which you haven't told us anything about.
Solution 3:
Although it is an old question, another solution is to use datetime2 for the database column. MSDN Link