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查询? 我为什么要?