Although it is strongly recommended that you avoid the use of
invalid dates within your .NET application, it is possible to
use invalid dates by means of the
MySqlDateTime
data type.
The MySqlDateTime
data type supports the same
date values that are supported by the MySQL server. The default
behavior of Connector/NET is to return a .NET DateTime object for valid
date values, and return an error for invalid dates. This default
can be modified to cause Connector/NET to return
MySqlDateTime
objects for invalid dates.
To instruct Connector/NET to return a MySqlDateTime
object for invalid dates, add the following line to your
connection string:
Allow Zero Datetime=True
The MySqlDateTime
class can still be
problematic. The following are some known issues:
Data binding for invalid dates can still cause errors (zero dates like 0000-00-00 do not seem to have this problem).
The
ToString
method return a date formatted in the standard MySQL format (for example,2005-02-23 08:50:25
). This differs from theToString
behavior of the .NET DateTime class.The
MySqlDateTime
class supports NULL dates, while the .NET DateTime class does not. This can cause errors when trying to convert a MySQLDateTime to a DateTime if you do not check for NULL first.
Because of the known issues, the best recommendation is still to use only valid dates in your application.