将varchar转换为日期时间数据类型

问题描述

这是在Microsoft sql Server Management Studio中;我的表中有一列Order_Date,数据类型为datetime

在我的ASP.NET Web应用程序中,我使用以下查询插入日期:

"INSERT INTO Order (ORDER_DATE) VALUES ('" + System.DateTime.Now + "')";

我之前在另一个项目中做过同样的事情,但是在那里没有出现错误。在尝试插入数据时,出现错误。我该如何解决这个错误

enter image description here

解决方法

System.DateTime.Now附加到您的INSERT字符串后,它将由C#自动转换为字符串。但是,它产生的字符串将取决于执行它的框上的区域/区域性设置。极不可能生成SQL可以理解的日期时间字符串格式。因此,您需要通过在生成字符串时显式设置它来确保使用正确的格式:

"INSERT INTO Order (ORDER_DATE) Values ('" + System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "')";
,

您可以将其设置为类似SqlType:

"INSERT INTO Order (ORDER_DATE) Values ('" + new System.Data.SqlTypes.SqlDateTime(DateTime.Now).ToString() + "');"

签出: https://docs.microsoft.com/en-us/dotnet/api/system.data.sqltypes.sqldatetime