1

我有一个问题,如何将datetime值从 Oracle 解析到 MySQL 数据库。

我写这个是为了从 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)";
}

然后我lDat_otpINSERT语句中使用其他一些值,如下所示:

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 服务器版本相对应的手册,以在第 1 行的 '26.01.2012 13:48:41',4)','100654', '0', '10')' 附近使用正确的语法

所以帮忙!!!

4

1 回答 1

2

您可以将 datetime 字段解析为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);

这样做你应该不会遇到日期格式的问题。 我强烈建议使用参数而不是字符串连接,即使对于查询的其他参数...

于 2012-05-08T10:45:22.853 回答