2014-04-17 19 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); 
相关问题