将 varchar 转换为 datetime 数据类型

Conversion of varchar into datetime data type

这是在 Microsoft SQL Server Management Studio 中;我的 table 中有一列 Order_Date,数据类型是 datetime.

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

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

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

System.DateTime.Now 附加到 INSERT 字符串后,C# 会自动将其转换为字符串。然而,它产生的字符串将取决于它正在执行的框上的 regional/culture 设置。极不可能生成 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