【问题标题】:MySql Database while Inserting DateMySql 数据库同时插入日期
【发布时间】: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


【解决方案1】:

我找到了解决方案,我只需要输出 "**" around date in sql insert statement. like **starting` 就可以了。 这是一个参考链接:

SQL syntax error, number, date/time

【讨论】:

    猜你喜欢
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-11
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多