gpt4 book ai didi

c# - MySQL 命令 - 日期错误

转载 作者:行者123 更新时间:2023-11-30 01:07:30 24 4
gpt4 key购买 nike

我正在尝试将以下 MySqlCommand 组合在一起。

string cols = "(DateTime, Ticker, Open, High, Low, Close, Volume, ReqCode, UpdateTime)"; 
string parametrs = "(?DateTime, ?Ticker, ?Open, ?High, ?Low, ?Close, ?Volume, ?ReqCode, ?UpdateTime)"; //, ?UpdateTime)";

try {
using (MySqlCommand cmd = new MySqlCommand()) {
cmd.Connection = myConn;
cmd.CommandText = "INSERT INTO " + schema + cols + " VALUES" + parametrs + "\n ON DUPLICATE KEY UPDATE ReqCode = ?ReqCode AND UpdateTime = ?UpdateTime";
cmd.Parameters.Add("?DateTime", MySqlDbType.DateTime).Value = aPriceBar.BarTimestamp;
cmd.Parameters.Add("?Ticker", MySqlDbType.VarChar).Value = aPriceBar.Ticker;
cmd.Parameters.Add("?Open", MySqlDbType.Decimal).Value = aPriceBar.Open;
cmd.Parameters.Add("?High", MySqlDbType.Decimal).Value = aPriceBar.High;
cmd.Parameters.Add("?Low", MySqlDbType.Decimal).Value = aPriceBar.Low;
cmd.Parameters.Add("?Close", MySqlDbType.Decimal).Value = aPriceBar.Close;
cmd.Parameters.Add("?Volume", MySqlDbType.UInt32).Value = aPriceBar.Volume;
cmd.Parameters.Add("?ReqCode", MySqlDbType.VarChar).Value = aPriceBar.ReqCode;
cmd.Parameters.Add("?UpdateTime", MySqlDbType.DateTime).Value = aPriceBar.ReqTimestamp;
cmd.ExecuteNonQuery();
}
} catch (MySqlException ex) {
Console.WriteLine(ex.Message);
}

当我运行该程序时,我捕获到以下异常:

"You have an error in your SQL syntax; ... for the right syntax to use near ''2013-10-28 16:23:26.379'

我确信 2013-10-28 是 ReqTimestamp 中的日期。

我很惊讶,因为当我没有向查询添加对 UpdateTime 列的引用时,INSERT 查询就会执行:查询成功地将 DateTime 类型与另一列 (Datetime) 结合使用。但是,a) aPriceBar.ReqTimestamp 是一个 DateTime,其中 reqTimestamp = DateTime.UtcNow 而 b) aPriceBar.BarTimestamp 已生成

DateTime datetime = DateTime.ParseExact(sFields[0], "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);

''2013-10-28 16:23:26.379':一天之后的“.379”让我怀疑当我使用 UctNow 时,而不是使用 CultureInfo.InvariantCulture 的 ParseExactsome,一些时区信息被添加到 DateTime实例。

我用 MySQL Workbench 检查了表定义,看起来没问题。

不知道如何解决这个问题。谢谢!

最佳答案

如果您的数据库字段是“datetime”而不是 datetime2/offset,则可能是 xxx:xxx.379 部分出现问题。

关于c# - MySQL 命令 - 日期错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19639196/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com