2014-01-28 162 views

回答

2

.NET DateTime的最小值是0001年1月1日; MySQL DATETIME的最小值为'1000-01-01',但对于SQL MODE,可以将'0000-00-00'作为DATE插入,请参阅文档中的NO_ZERO_DATE。

如果要在.NET DateTime结构中存储'0000-00-00',则使用'0001-01-01',然后如果可以在表示层中更改此值。

如果你想 '0000-00-00' 保存在MySQL,那么你应该检查SQL模式MySQL服务器 -

SELECT * FROM information_schema.GLOBAL_VARIABLES 
    WHERE VARIABLE_NAME = 'sql_mode'; 

从技术文档:NO_ZERO_DATE - 在严格模式下,不允许“0000 -00-00'作为有效日期。您仍然可以使用IGNORE选项插入零日期。未处于严格模式时,将接受日期,但会生成警告。

Server SQL Modes

+0

谢谢,希望这有助于:) –

+1

+1对'NO_ZERO_DATE - 在严格模式下,不允许'0000-00-00'作为有效日期“ –

0

您需要插入这些值作为字符串

像这样

Create table tbl(dt datetime); 
Insert into tbl values('0000-00-00 00:00:00'); 
SELECT CAST(dt as char) FROM tbl 

Fiddle

+0

感谢您的帮助,你举了一个WCF数据服务的例子吗? –

+0

我找不到你 –

0

如果你问如何创建C#DateTime对象与0000-00-00 00:00:00 - 你不能,这是一个无效的数据即你可以使用DateTime.MinValue。从内存0000-01-01 00:00:00

为什么不使用NULL?使用魔术值而不是NULL并不总是一个好主意。

+0

谢谢你让我意识到它不能这样做:) –