我有一个包含两个Datetime列的MySQL表。这些列被设置为allow null,一些列具有缺省值'0000-00-00 00:00:00‘。这是一个从ASP到ASP.NET的转换项目,因此表中充满了数据,其中一些行仍然具有默认值,因此我必须在连接字符串中设置"Allow Zero Datetime=True“,以避免出现异常"Unable to convert MySQL date/time value to System.DateTime”。
现在,当我生成代码时,一切都运行得很好,并且我得到了DateTime类型的属性?对于这些列,但是当我查询数据库并填充表示表的对象时,所有DateTime属性都为null。其他属性将填充其正确的值。
有人知道为什么吗?
我使用的是从github编译的MySQL连接器6.1.3和SubSonic.Core (11/17/2009)
发布于 2009-11-18 16:34:07
我做了一些数据清理。已将日期为'0000-00...‘的所有日期时间列更新为null并从连接字符串中删除了"Allow Zero Datetime=True“,然后它就可以工作了。猜测SubSonic不支持零日期,为什么它应该支持,我看不到零日期在null上有什么用。
发布于 2009-11-18 11:42:18
转换来自不同SQL DBMS的datetime格式的诀窍是将列装载为VARCHAR。然后使用诸如SUBSTRING和CONCAT之类的字符串函数来尝试并获得所需的格式。从经验来看,这节省了很多时间。无需担心datetime的dbms自动转换。
MySQL使用'YYYY-MM-DD HH:MM:SS‘
https://stackoverflow.com/questions/1750413
复制相似问题