我正在尝试将日期(仅限日期,而不是日期时间)插入 sql 表(数据类型为日期)。
我正在使用'23/07/2013'
从 jquery datepicker 获得的格式。
当我执行以下 sql 时,出现以下错误。
SQL:UPDATE qmsAuditFindings SET FindDate='23/07/2013' WHERE AuditID=37
请指教。
另外值得一提的是,具有确切格式的插入语句工作得很好。只是没有更新。
我正在尝试将日期(仅限日期,而不是日期时间)插入 sql 表(数据类型为日期)。
我正在使用'23/07/2013'
从 jquery datepicker 获得的格式。
当我执行以下 sql 时,出现以下错误。
SQL:UPDATE qmsAuditFindings SET FindDate='23/07/2013' WHERE AuditID=37
请指教。
另外值得一提的是,具有确切格式的插入语句工作得很好。只是没有更新。
从表面上看,这只是一个格式问题——但“修复格式”是解决这个问题的错误方法;你应该参数化,这样格式就根本不适用。日期没有“格式”,因此它们只是数字。例如,我们可能应该执行的是:
UPDATE qmsAuditFindings SET FindDate=@findDate WHERE AuditID=@auditId
为此,您可以DateTime
在 .NET 代码中获取值,然后执行以下操作:
DateTime findDate = ...
int auditId = ...
using(var cmd = connection.CreateCommand()) {
cmd.CommandText =
"UPDATE qmsAuditFindings SET FindDate=@findDate WHERE AuditID=@auditId";
cmd.Parameters.AddWithValue("findDate", findDate);
cmd.Parameters.AddWithValue("auditId", auditId);
cmd.ExecuteNonQuery();
}
或者更简单地使用像“dapper”这样的工具:
DateTime findDate = ...
int auditId = ...
connection.Execute(
"UPDATE qmsAuditFindings SET FindDate=@findDate WHERE AuditID=@auditId",
new { findDate, auditId });