c#时间到sql日期时间

在将记录插入数据库时​​,我无法将c#date time 7/31/2017 3:13:49 PM转换为SQL日期时间。

我正在使用这个

DateTime dt = DateTime.Parse("11/23/2010"); string toSqlDate= dt.ToString("yyyy-MM-dd HH:mm:ss"); DateTime finalDate = DateTime.Parse(toSqlDate); 

但它给了我错误。

字符串未被识别为有效的DateTime。

将其更改为年/月/日后,这可以提供帮助!

 var sqlDate = finalDate.Date.ToString("yyyy-MM-dd HH:mm:ss"); 

您的dateformat表示“年 – 月 – 日”,而您的日期为“月/日/年”,这可能不对。 更改日期格式或日期格式。

这应该工作:

 DateTime dt = DateTime.Parse("2010-11-23 00:00:00"); string toSqlDate= dt.ToString("yyyy-MM-dd HH:mm:ss"); 

将查询更改为

 insert into table_name (column1) values ('" + dt.Value.ToString("yyyy-MM-dd") + "') 

尝试使用DateTime.ParseExact方法并指定适合您的日期格式,这是MSDN的一个示例( https://msdn.microsoft.com/fr-fr/library/w2sa9yss(v=vs.110).aspx ):

 var dateString = "06/15/2008"; var format = "d"; try { var result = DateTime.ParseExact(dateString, format, CultureInfo.InvariantCulture); Console.WriteLine("{0} converts to {1}.", dateString, result.ToString()); } catch (FormatException) { Console.WriteLine("{0} is not in the correct format.", dateString); } 

.Net DateTime 直接映射到SQL Server DateTime 。 这意味着您根本不需要担心显示格式,因为DateTime 没有显示格式。
您需要做的就是将DateTime结构的实例作为参数传递给SqlCommand

 SqlCommand.Parameters.Add("@DateTimeParam", SqlDbType.DateTime).Value = dt; 

额外阅读: 如何创建参数化SQL查询? 我为什么要?