2016-04-08 38 views
-1

我在將DateTime輸入到我的MySQL數據庫中遇到了一個很大的問題。 MySQL讀取日期時間爲yyyy-MM-dd HH:mm:ss,而C#將datetime表示爲dd/MM/yyyy HH:mm:ss。我試過兩個不同的例子,兩者都不起作用。如何通過C#輸入DateTime到MySQL#

模型

public class DateAndTime 
{ 
    public DateTime DateTime { get; set; } 
} 

控制器

//I Have two examples that doesn't work. 
var myDateTime = "2016-04-08 12:00:00" //this gives the error "cannot covert source 'string' to tartget type System.DateTime 

var myDateTime = Convert.ToDateTime("2016-04-08 12:00:00") //this gives the error "Input string was not in a correct format." 

var model = new DateAndTime 
{ 
    DateTime = myDateTime 
}; 

所以我卡住了。我確信有人有這個問題。

+1

你是如何創建你的SQL語句的?如果你使用參數,那麼你不需要擔心格式。 – juharr

+0

@juharr - 表中的DateTime列DateAndTime在MySQL數據庫中,格式爲yyyy-MM-dd HH:mm:ss。我使用nHibernate寫入數據庫,但即時通訊還沒有得到這個錯誤。 – NeoSketo

+0

你的意思是它在數據庫中是一個'varchar'而不是'DateTime'?因爲'DateTime'沒有特定的格式,所以它實際上只是一個數值。與SQL語句一起使用的格式只是爲了讓人們能夠理解它。 – juharr

回答

0
DateTime myDate = DateTime.ParseExact("2009-05-08 14:40:52,531", "yyyy-MM-dd HH:mm:ss,fff", 
             System.Globalization.CultureInfo.InvariantCulture); 

檢查:

Converting a String to DateTime

https://msdn.microsoft.com/en-ca/library/cc165448.aspx

https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx

+0

使用這個:var myDateTime =「2016-04-08 14:18:17」 and DateTime.ParseExact(myDateTime,「yyyy-MM-dd HH:mm:ss」,System.Globalization.CultureInfo.InvariantCulture) i獲取錯誤「輸入字符串格式不正確。」也許這是不正確的,因爲它缺少上午/下午? – NeoSketo

+0

這很好。事實證明我是以錯誤的格式轉換它。感謝我 – NeoSketo

0

試試這個:

myDateTime.ToString("yyyy-MM-dd HH:mm:ss"); 

myDateTime變量必須爲DateTime類型。

,或者你可以使用這個MySQL函數:STR_TO_DATE

STR_TO_DATE('4/8/2016 2:18:17 PM', '%m/%d/%Y %h:%i:%s %p') 

Specifier Format here

+0

使用這仍然給我錯誤「annot隱藏源'字符串到tartget類型System.DateTime」 – NeoSketo

+0

myDateTime變量必須是類型DateTime嘗試:Convert.ToDateTime(myDateTime).ToString(「yyyy-MM-dd HH: MM:SS「); –

+1

是啊。 DateTime myDateTime = {4/8/2016 2:18:17 PM}時出現此錯誤。 – NeoSketo

0

我有這個問題,因爲在我的機器的日期時間格式。如果您的桌面配置爲dd/mm/yy(/符號而不是 - ),那麼您必須在轉換之前進行替換。請讓我知道

+0

我的機器顯示dd/mm/yyyy但它不重要,因爲最終結果必須寫入yyyy-MM-dd HH:mm:ss,以便能夠將其轉換。 – NeoSketo