将 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
这是在 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