我正在尝试将日期(仅日期,而不是日期时间)插入到sql表中(数据类型为date)。
我正在使用我从jquery datepicker获取的'23/07/2013'
格式。
当我执行以下sql时,我收到以下错误。
SQL:UPDATE qmsAuditFindings SET FindDate='23/07/2013' WHERE AuditID=37
请指教。
另外值得一提的是,具有确切格式的insert语句工作得很好。只是更新没有。
答案 0 :(得分:1)
从表面上看,这只是一个格式问题 - 但“修复格式”是解决这个问题的错误方法。你应该参数化,这样格式化根本就不适用。日期不会拥有“格式”,因为它们只是数字。例如,我们应该可能执行的是:
UPDATE qmsAuditFindings SET FindDate=@findDate WHERE AuditID=@auditId
为此,您可以在.NET代码中获得DateTime
值,并执行以下操作:
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 });