2012-06-30 68 views
0

我在使用c#的asp.net中獲取此錯誤1292無效的日期格式編寫sql簡單的插入查詢時,但它與實體框架工作正常爲什麼它給與SQL插入查詢錯誤?數據庫使用mysql和列格式是datetime格式。在c#中的日期時間格式問題

SQL代碼

INSERT INTO `log`(`LogID`,`Time`,`Details`,`UserName`,`LogType`) 
VALUES('0','6/30/2012 3:47:22 PM','testaaaa Deleted','admin','1'); 

對於實體框架

log.AddLog(); 
//Where log is table object name. 
+3

你能表現出一定的代碼還是什麼? –

+0

請放一些代碼以便我們回答。 –

+0

請現在檢查 – user1387147

回答

2

很確定你有這個格式輸入:YYYY-MM-DD HH:MM:SS

所以儘量

INSERT INTO `log`(`LogID`,`Time`,`Details`,`UserName`,`LogType`) 
VALUES('0','2012-06-30 15:47:22','testaaaa Deleted','admin','1'); 
+0

你是對的,但我的問題是爲什麼實體框架允許進入? – user1387147

+0

你的問題是'爲什麼它給錯誤的SQL插入查詢?'由於沒有正確的格式,你會得到一個錯誤 – peroija

+0

我的問題是爲什麼它與etityframe工作正常工作。它應該給出插入查詢時給出的錯誤。 – user1387147

-1

還有差異日期時間字段接受的不同格式。我很確定你不能以你使用的格式使用PM。你只能使用下午4點,下午3點等。嘗試刪除PM部分,看看是否適合你。

+0

你能再次讀我的問題嗎? – user1387147

-1

我想......請您檢查表name..it不應單引號.....只值應在單引號.......

+0

表名可以單引號引用。這用於您需要將表格命名爲保留關鍵字的情況。示例創建表'選擇'.... –

3

你想使用STR_TO_DATE可讓MySQL在您直接使用SQL時正確解釋非標準日期/時間字符串。

STR_TO_DATE('6/30/2012 3:47:22 PM', '%m/%e/%Y %h:%i:%s %p') 

應該爲你做的伎倆。因此,您的插入語句變爲:

INSERT INTO `log` 
    (`LogID`, 
    `Time`, 
    `Details`,`UserName`,`LogType`) 
VALUES 
    ('0', 
    STR_TO_DATE('6/30/2012 3:47:22 PM', '%m/%e/%Y %h:%i:%s %p'), 
    'testaaaa Deleted','admin','1') 

MySQL實體框架代碼知道如何將Dotnet日期轉換爲適用於MySQL代碼的格式。這就是它正常工作的原因。

的繁瑣一點%M%H東西如下所示: http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format