无法更新 MSSQL Server 中的 DateTime 字段
Cannot update DateTime field in MSSQL Server
我的 ASP.NET MVC 项目中有一个更新子句,我只想使用当前时间更新单个字段。我知道我也可以使用 GETDATE(),但我需要从服务层传递日期参数。因此,查询完全如下所示,我也尝试在 MSSQL Server 上使用它,但遇到相同的错误:"Incorrect syntax near '.2019'."
UPDATE com.[Ticket] SET Updated = 29.04.2019 15:25:58 WHERE [Id] = 103
这是我构建 sql 子句的代码端:
DateTime lastUpdate = DateTime.Now;
string sql = "UPDATE com.[Ticket] SET Updated = " + lastUpdate + " WHERE [Id] = " + model.Id;
更新的字段是 n 日期时间类型。我必须在更新子句中格式化日期参数吗?
日期可以格式化:
UPDATE com.[Ticket] SET Updated = '2019/04/29 15:25:58' WHERE [Id] = 103
参数化您的查询。然后你不需要担心日期字符串的格式,更重要的是,你不接受 SQL 注入。
string sql = "UPDATE com.[Ticket] SET Updated = @date WHERE [Id] = @id";
SqlCommand command = new SqlCommand(sql, conn);
command.Parameters.AddWithValue("@date", DateTime.Now);
command.Parameters.AddWithValue("@id", model.Id);
我的 ASP.NET MVC 项目中有一个更新子句,我只想使用当前时间更新单个字段。我知道我也可以使用 GETDATE(),但我需要从服务层传递日期参数。因此,查询完全如下所示,我也尝试在 MSSQL Server 上使用它,但遇到相同的错误:"Incorrect syntax near '.2019'."
UPDATE com.[Ticket] SET Updated = 29.04.2019 15:25:58 WHERE [Id] = 103
这是我构建 sql 子句的代码端:
DateTime lastUpdate = DateTime.Now;
string sql = "UPDATE com.[Ticket] SET Updated = " + lastUpdate + " WHERE [Id] = " + model.Id;
更新的字段是 n 日期时间类型。我必须在更新子句中格式化日期参数吗?
日期可以格式化:
UPDATE com.[Ticket] SET Updated = '2019/04/29 15:25:58' WHERE [Id] = 103
参数化您的查询。然后你不需要担心日期字符串的格式,更重要的是,你不接受 SQL 注入。
string sql = "UPDATE com.[Ticket] SET Updated = @date WHERE [Id] = @id";
SqlCommand command = new SqlCommand(sql, conn);
command.Parameters.AddWithValue("@date", DateTime.Now);
command.Parameters.AddWithValue("@id", model.Id);