다음 MySqlCommand를 조합하려고합니다.MySQL 명령 - 날짜가 포함 된 버그
"당신은 당신의 SQL 구문에 오류가있다; ... 올바른 구문은 근처 ''사용하기 위해 2013- : 나는이 프로그램을 실행하면
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); }
, 나는 다음과 같은 예외를 잡을 10-28 16 : 23 : 2013년 10월 28일가 ReqTimestamp의 날짜입니다 26.379 '
내가 확실히 알고
삽입 쿼리가 죽 간다 때문에 나는 당황 스럽네요. 쿼리에 UpdateTime 열에 대한 참조를 추가하지 않을 때 : 쿼리가 다른 하나의 열 (Datetime)과 함께 DateTime 형식을 성공적으로 사용합니다. 그러나 a)에서는 aPriceBar.ReqTimestamp b)는 aPriceBar.BarTimestamp
DateTime datetime = DateTime.ParseExact(sFields[0], "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
': 23 : 26.379 2013년 10월 28일 16'에 의해 생성되었지만 reqTimestamp = DateTime.UtcNow를 날짜 시간은, 인이 " .379 "이후 CultureInfo.InvariantCulture와 함께 ParseExactsome 대신 UctNow를 사용하면 일부 시간대 정보가 DateTime 인스턴스에 추가되는 것으로 의심됩니다.
테이블 정의를 MySQL workbench로 확인했는데 문제가 없습니다.
해결 방법을 잘 모릅니다. 감사합니다.
'? UpdateTime'이라는 열 (마지막 이름)이 있습니까? 'UpdateTime'을 의미합니까 아니면 그냥 오타입니까? – Steve
무엇을 사용하고 계십니까? 예상되는 '@'대신 매개 변수를 나타낼 수 있습니까? 아니면 열이 nullable입니까? – Brian
중단 점을 설정하십시오. 실제 명령 텍스트는 어떻게 생겼습니까? Steve가 1 행의'cols' 문자열에'UpdateTime'을 가지고 있다고 말했을 것입니다. – sab669