2009-11-17 61 views
0

我有一个MySQL表和几个Datetime列。列设置为允许空值,一些列的默认值为'0000-00-00 00:00:00'。这是一个从ASP到ASP.NET的转换项目,因此表中充满了数据,并且其中某些行仍具有默认值,因此我必须在连接字符串中设置“允许Zero Datetime = True”以避免发生异常“Unable将MySQL日期/时间值转换为System.DateTime“从MySQL使用SubSonic 3填充没有日期时间值Linq

现在,当我生成代码它一切正常,我得到的类型DateTime的属性?对于那些列,但是当我查询数据库并填充表示该表的对象时,所有DateTime属性都为null。其他属性会填充其正确的值。

有人知道为什么吗?

我使用MySQL连接器6.1.3,并从github上SubSonic.Core编译今天(11/17/2009)

回答

0

我从不同的SQL数据库管理系统转换日期时间格式伎俩是加载列VARCHAR 。然后使用字符串函数(如SUBSTRING和CONCAT)来玩弄并获得渴望格式。从经验中可以节省很多时间。无需担心日期时间的dbms自动转换。

MySQL使用 'YYYY-MM-DD HH:MM:SS'

1

我做了一些数据清理。将所有日期时间列更新为null,其中日期为'0000-00 ...',并从连接字符串中移除“Allow Zero Datetime = True”,然后运行。 SubSonic不支持猜测零日期,为什么它应该是零日期而不是null。