2014-01-28 157 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

謝謝你讓我意識到它不能這樣做:) –