2014-04-17 15 views
0

我在我的mysql數據庫表中有一列,其數據類型爲Datetime。現在我的c#代碼中有一個字符串,值爲17/04/2014。所以我的問題是我該如何插入這個值放到我的日期時間列中。如何將字符串值保存爲Mysql中的日期時間使用c#

請幫助我..

+0

U可以包括在問題insert語句 –

+0

@GujjuDeveloper先生,我已經更新了我的職務與代碼,請看到它.. – Laxman

+0

編輯的答案檢查新的命令文本 –

回答

6

下面的例子轉換日期字符串使用ParseExact方法DATETIME。

如果你能保證日期總是會在一個給定的格式,那麼你可以使用ParseExact()

 string dateString, format; 
     DateTime result; 
     CultureInfo provider = CultureInfo.InvariantCulture; 
     format ="dd/MM/yyyy"; 
     dateString = "17/04/2014"; 
     result = DateTime.ParseExact(dateString, format, provider); 

enter image description here

EDITED

與此

cmd.CommandText = "insert into processeddata_table values(STR_TO_DATE('" + calldate + "','%d-%m-%Y'),'" + calltime + "','" + source + "','" + dialedno + "','" + extension + "','" + trunk + "','" + duration + "','" + toc + "','" + cost + "','" + site + "','" + callstatus + "','" + location + "','" + incomingcallduration + "','" + transfercallduration + "','" + outgoingcallduration + "','" + ringingduration + "','" + confereneceduration + "','" + empid + "','" + Department + "')"; 
替換命令文本
+0

但這個問題的矯枉過正。 MySQL將它保存在自己的格式中? – TheGeekZn

+2

@NewAmbition - 根本沒有矯枉過正。 'DateTime.ParseExact'是從字符串到'DateTime'的首選方式。 MySQL客戶端應該採用'DateTime',而不是一個字符串。 MySQL如何實際存儲它並不相關,但很可能是二進制格式。 –

+0

我prefere'DateTime.ParseExact'因爲一些區域設置具有不同的不同日期時間格式,所以每次'Convert.Todatetime()'不工作 –

1

馮·可以這樣做:

string date="17/04/2014"; 

DateTime dt = Convert.ToDateTime(date); 
+2

您應該提供一個'IFormatProvider',或使用ParseExact。因爲如果提供者爲空,則使用當前文化的DateTimeFormatInfo。這意味着'01/02/2014'可能是1月2日或2月1日,除非你知道當前的文化是什麼,否則你不知道它是否會按預期工作。 –

+0

你是對的,謝謝你糾正 –

0

有很多方案&解決方案涉及到你的問題。

根據輸入,有兩種方法。

DateTime strDate = DateTime.Parse("17/04/2014"); 

//像你的情況,DD/MM/YYYY具體格式:

DateTime strDateWithFormat = DateTime.ParseExact(strDate, "dd/MM/yyyy",null); 
相關問題