5.10.4 处理无效日期

尽管强烈建议您避免在 .NET 应用程序中使用无效日期,但可以通过 MySqlDateTime数据类型使用无效日期。

MySqlDateTime数据类型支持与 MySQL 服务器相同的日期值。Connector/NET 的默认行为是为有效日期值返回 .NET DateTime 对象,并为无效日期返回错误。可以修改此默认值以导致 Connector/NET 返回 MySqlDateTime无效日期的对象。

要指示 Connector/NET 返回MySqlDateTime 无效日期的对象,请将以下行添加到您的连接字符串中:

Allow Zero Datetime=True

该类MySqlDateTime仍然存在问题。以下是一些已知问题:

  • 无效日期的数据绑定仍然会导致错误(0000-00-00 之类的零日期似乎没有这个问题)。

  • ToString方法返回一个以标准 MySQL 格式(例如, 2005-02-23 08:50:25)格式化的日期。这不同于ToString.NET DateTime 类的行为。

  • 该类MySqlDateTime支持 NULL 日期,而 .NET DateTime 类不支持。如果您不首先检查 NULL,则在尝试将 MySQLDateTime 转换为 DateTime 时可能会导致错误。

由于已知问题,最好的建议仍然是在您的应用程序中仅使用有效日期。