我的 ASP.NET MVC项目中有一个更新子句,我只想使用当前时间更新单个字段。我知道我也可以使用 GETDATE((,但我需要从服务层传递日期参数。因此,查询完全如下所示,我也尝试在MSSQL服务器上使用它,但遇到了相同的错误:"'.2019'附近的语法不正确。
更新公司[票证] 设置已更新 = 29.04.2019 15:25:58 其中 [Id] = 103
这是我构建 sql 子句的代码端:
DateTime lastUpdate = DateTime.Now;
string sql = "UPDATE com.[Ticket] SET Updated = " + lastUpdate + " WHERE [Id] = " + model.Id;
更新的字段为 n 个日期时间类型。我是否必须格式化更新子句中的日期参数?
参数化查询。然后,您无需担心日期字符串的格式,更重要的是,您不接受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);
日期可以格式化:
UPDATE com.[Ticket] SET Updated = '2019/04/29 15:25:58' WHERE [Id] = 103