无法更新MSSQL Server中的DateTime字段

时间:2019-04-29 12:37:15

标签: c# sql sql-server tsql sql-server-2008

我在ASP.NET MVC项目中有一个update子句,我只想使用当前时间更新单个字段。我知道我也可以使用GETDATE(),但是我需要从Service层传递date参数。因此,查询完全如下所示,我也尝试在MSSQL Server上使用它,但是遇到相同的错误: “'。2019'附近的语法不正确。”

  

UPDATE com。[Ticket] SET更新= 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子句中格式化date参数?

2 个答案:

答案 0 :(得分:2)

参数化您的查询。然后,您不必担心日期字符串的格式,更重要的是,您不愿意接受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);

答案 1 :(得分:-1)

日期可以格式化:

UPDATE com.[Ticket] SET Updated = '2019/04/29 15:25:58' WHERE [Id] = 103