DateTime.MinValue and SqlDateTime overflow
Very simple avoid using DateTime.MinValue
use System.Data.SqlTypes.SqlDateTime.MinValue
instead.
Although it is an old question, another solution is to use datetime2 for the database column. MSDN Link
Well... its quite simple to get a SQL min date
DateTime sqlMinDateAsNetDateTime = System.Data.SqlTypes.SqlDateTime.MinValue.Value;
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.