表結構中的DateTime字段爲'not null',但我想存儲數據(MVC C#Datetime)0000-00-00 00:00:00到MySQL表沒有改變表結構。轉換C#日期時間爲0000-00-00 00:00:00到MySQL
我試圖做到這一點,但其但錯誤!
Convert.ToDateTime("0000/00/00");
請幫幫忙,謝謝
表結構中的DateTime字段爲'not null',但我想存儲數據(MVC C#Datetime)0000-00-00 00:00:00到MySQL表沒有改變表結構。轉換C#日期時間爲0000-00-00 00:00:00到MySQL
我試圖做到這一點,但其但錯誤!
Convert.ToDateTime("0000/00/00");
請幫幫忙,謝謝
.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選項插入零日期。未處於嚴格模式時,將接受日期,但會生成警告。
您需要插入這些值作爲字符串
像這樣
Create table tbl(dt datetime);
Insert into tbl values('0000-00-00 00:00:00');
SELECT CAST(dt as char) FROM tbl
感謝您的幫助,你舉了一個WCF數據服務的例子嗎? –
我找不到你 –
如果你問如何創建C#DateTime對象與0000-00-00 00:00:00 - 你不能,這是一個無效的數據即你可以使用DateTime.MinValue。從內存0000-01-01 00:00:00
爲什麼不使用NULL?使用魔術值而不是NULL並不總是一個好主意。
謝謝你讓我意識到它不能這樣做:) –
謝謝,希望這有助於:) –
+1對'NO_ZERO_DATE - 在嚴格模式下,不允許'0000-00-00'作爲有效日期「 –