2012-05-08 47 views
1

我有一個問題,如何解析從Oracle到MySQL數據庫的datetime值。從Oracle到MySql數據庫的DateTime值

我寫這篇提取從Oracle日期時間:

SELECT TO_CHAR(p1.creation_date,'DD.MM.RRRR HH24:mi:ss') AS dat_pot 
FROM TABLE 

然後我把結果變成數據集,然後我從數據集中提取日期的價值是這樣的:

string lDat_otp = null;   

if (rw_mat["dat_otp"].ToString().Length <= 0) 
{ 
    lDat_otp = "0"; 
} 
else 
{ 
    lDat_otp = "convert(datetime,'" + rw_mat["dat_otp"] + "',4)"; 
} 

然後我在INSERT聲明中使用了lDat_otp,其他值如下:

myQuery = " INSERT INTO ordersstavke (BrDok, " + 
      " SifParFil, SifParIsp, DatPriOtpr, SifPodKla, Masa, Paketa) " + 
      " VALUES ('" + rw_mat["brdok"] + "', '" + 
         rw_mat["sifskl_kor"] + "','" + 
         rw_mat["partner"] + "'," + 
         lDat_otp + ",'" + 
         rw_det["ibrmat"] + "', '" + 
         rw_det["izlaz_tez"] + "', '" + 
         rw_det["izlaz_kol"] + "')"; 

但執行時出現錯誤,它會顯示:

您的SQL語法錯誤;檢查手冊, 對應於您的MySQL服務器版本的正確語法使用 靠近'26 .01.2012 13:48:41',4)','100654','0','10')'在第1行

所以幫助!!!

+0

好的,如何接受答案? – CrBruno

+0

我有一個[**鏈接**在我的評論](http://meta.stackexchange.com/q/5234/153998),你可以按照看看究竟如何做到這一點..... –

+1

好的謝謝,我很抱歉,我很好,將來要記住這個 – CrBruno

回答

2

可以解析日期時間字段爲DateTime結構,然後創建一個insert into查詢與參數和傳遞日期爲參數:

DateTime time = //Some value ... 
String myQuery = " INSERT INTO ordersstavke (BrDok, " + 
      " SifParFil, SifParIsp, DatPriOtpr, SifPodKla, Masa, Paketa) " + 
      " VALUES ('" + rw_mat["brdok"] + "', '" + 
         rw_mat["sifskl_kor"] + "','" + 
         rw_mat["partner"] + "'," + 
         "?date ,'" + 
         rw_det["ibrmat"] + "', '" + 
         rw_det["izlaz_tez"] + "', '" + 
         rw_det["izlaz_kol"] + "')"; 
MysqlCommand command = new MysqlCommand(query, connection); 
command.Parameters.AddWithValue("?date", time); 

這樣做,你不應該有日期格式的問題。 我強烈建議使用參數,而不是字符串連接,即使對於查詢的其他參數...

+0

我寫了這個DateTime lDat_otp = rw_mat [「dat_otp」]。ToString()。Length <= 0? DateTime.MinValue:DateTime.ParseExact(rw_mat [「dat_otp」]。ToString(),「dd.MM.yyyy HH:mm:ss」,System.Globalization.CultureInfo.InvariantCulture);但在MySQL數據庫中的日期時間字段我得到這個'0000-00-00 00:00:00是格式化的問題? – CrBruno

+0

將時間字段傳遞給參數時,時間字段的值是多少? – aleroot

+0

值爲DatPriOtpr = 26.1.2012。 13:48:41 – CrBruno