【发布时间】:2016-07-07 19:16:44
【问题描述】:
我正在使用 Mysql 数据库在 c# 代码中插入来自 API 的数据。所有其他数据都可以插入接受一个字段日期。下面是我的代码
cmd.CommandText = "INSERT INTO wpcommon.livingsocialoffers(id,uuid,title,starting) VALUES(@id,@uuid,@title,@starting)";
cmd.Parameters.AddWithValue("@id", "1599694");
cmd.Parameters.AddWithValue("@uuid", "572a260d-bcd6-48fa-8ef9-c8faaf9d84d9");
cmd.Parameters.AddWithValue("@title", "testtitle");
DateTime date= Convert.ToDateTime("6/2/2016 12:12:30 PM");
cmd.Parameters.AddWithValue("@starting", date);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
当执行 cmd.ExecuteNonQuery() 时,它的捕获错误:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在 "(id,uuid,title,starting) VALUES(@id,@uuid,@title,@starting)" 附近使用的正确语法
我已经用过了
cmd.Parameters.AddWithValue("STR_TO_DATE('@starting','%d/%m/%Y %H:%i:%s')", date);
当我尝试仅插入日期时发生此错误。如果我从代码中删除日期,它工作正常。
【问题讨论】:
-
尝试
DateTime.Parse并考虑使用Add而不是AddWithValue -
日期属于 API,所以我将 json 字符串转换为模态列表。来自 api 的实际日期是:“2016-06-02T16:12:30+00:00”,在 DeserializeObject 之后我得到“6/2/2016 12:12:30 PM”所以我写了最后的插入语句。我也只尝试了 ADD 但它捕获了同样的错误
-
您可能需要将结果解析为 NET DateTime:“6/2/2016”在 6 月 2 日或 2 月 6 日之间可能不明确,具体取决于文化
-
MySQL 中日期的默认格式是 yyyy-MM-dd。这就是它避免歧义的方式。
-
是的..让我看看它是否有效。谢谢@Plutonix,derloopkat
标签: c# mysql sql-insert