Не удается обновить поле DateTime в MSSQL Server - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть предложение об обновлении в моем проекте ASP.NET MVC, и я просто хочу обновить одно поле, используя текущее время. Я знаю, что мог бы также использовать GETDATE (), но мне нужно передать параметр date из сервисного уровня. Итак, запрос в точности такой, как показано ниже, и я также попытался использовать его на MSSQL Server, но столкнулся с той же ошибкой: "Неверный синтаксис рядом с '.2019'."

ОБНОВЛЕНИЕ com. [Ticket] SET Обновлено = 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;

Обновленное поле имеет тип даты и времени. Нужно ли форматировать параметр даты в предложении обновления?

Ответы [ 2 ]

2 голосов
/ 29 апреля 2019

Параметризация вашего запроса. Тогда вам не нужно беспокоиться о формате строки даты и, что более важно, вы не открыты для внедрения 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);
0 голосов
/ 29 апреля 2019

Дата может быть отформатирована:

UPDATE com.[Ticket] SET Updated = '2019/04/29 15:25:58' WHERE [Id] = 103
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...