DataTable 不接受 MySQL 表中的 DateTime 字段

Posted

技术标签:

【中文标题】DataTable 不接受 MySQL 表中的 DateTime 字段【英文标题】:DataTable doesn't accept DateTime field from MySQL table 【发布时间】:2012-08-18 06:21:18 【问题描述】:

我有一个 DateTime 字段,默认为“null”,但是当我的数据表尝试读取该字段时 这就是发生的事情

Não 通讯员 entre o tipo de valor e o tipo de colunaNão foi possível guardar > na coluna dh_cadastro。请注意 mysqlDateTime。

值类型和列类型不匹配。无法保存 dh_cadastro 列。期望的类型是 MySqlDateTime。

【问题讨论】:

MySql 中的有效日期时间范围是多少?我知道 SQL Server 与 System.DateTime 不同。 我认为可能是你的默认值造成的——DateTime是一个值类型,所以不能为null。尝试改用 DateTime.MinValue。 DateTime.MinValue 的值不同于 MySQL 的最小可表示 MySqlDateTime 值。您看到来自数据库的错误,因此您需要检查 MySqlDateTime.MinValue 【参考方案1】:

如果您使用 null 作为默认值,请使用可为空的 DateTime 对象 (DateTime?)

常规的 DateTime 不能为 null,因为它是值类型。

如果您从数据库中收到日期错误,请进行更新以确保没有 '0000-00-00' 日期。将这些更新为 0001-01-01 以与 .NET 的 DateTime.MinValue 对齐

另请参阅 SqlDateTime.MinValue != DateTime.MinValue, why? 以查看 MySQL 和 .NET 之间的 DateTime.MinValue 问题

【讨论】:

我发现了错误...birth_date 的字段是“0000-00-00”但是当我 ctrlC + CtrlV 时...当我过去复制的内容时,它的“24/ 12/2012, 25/04/2011"...正常日期...什么鬼?我猜这是恶魔的东西......有什么帮助吗?谢谢

以上是关于DataTable 不接受 MySQL 表中的 DateTime 字段的主要内容,如果未能解决你的问题,请参考以下文章

C#如何将datatable中的数据批量更新到MYSQL数据库

JS datatable表中的某一列如何获取

服务器端 Ajax JQuery CRUD DataTable - PHP PDO,MySql

为啥必须将表中的至少一列(在 MySQL 中)分配为 PRIMARY KEY,以便表通过 JDBC 接受 UPDATE 和 INSERT 语句?

如何在 Visual Studio 2019 的 Datagrid 视图中连接 MySQL DataTable 中的两列?

将 DataTable 保存到数据库表中