DateTime.MaxValue overflow error in SQL Server CE

The following lines of code should pass the maximum date  that can be selected to a SQL statement via a parameter.

SqlCeCommand insertCommand = dbConn.CreateCommand();
insertCommand.CommandType = CommandType.Text;
insertCommand.CommandText = "INSERT INTO MyDateTable (DateField) Values (@MyDate)";
insertCommand.Parameters.Add(new SqlCeParameter("MyDate", SqlDbType.DateTime));
insertCommand.Parameters["MyDate"].Value = DateTime.MaxValue
insertCommand.ExecuteNonQuery();

This works fine on all desktop versions of SQL Server, but on SQL Server CE on Windows Mobile returns ‘DateTime.MaxValue overflow’ A workaround for this (not ideal by any means) can be achieved using:

DateTime.MaxValue.AddMilliseconds(-1);

Leave a Reply