使用.net oledb在oracle数据库中插入错误的日期

时间:2014-07-04 05:11:54

标签: asp.net sql oracle

当我尝试使用oledb通过.net插入记录时,它会插入错误的数据

public void param()
{
    OleDbCommand cmd2 = new OleDbCommand("INSERT INTO PARAM_INF(PRM_FRM_DT,PRM_TO_DT) values(to_date('01-Jul-2014'),to_date('01-Jul-2014'))", con) { CommandType = CommandType.Text };
    if (con.State == ConnectionState.Closed)
    {
        con.Open();
    }
    cmd2.ExecuteNonQuery();
    con.Close();
}

结果select prm_frm_dt,prm_to_dt from PARAM_INF;

PRM_FRM_DT         PRM_TO_DT        
------------------ ------------------
20-JUL-01 02:00:00 20-JUL-01 02:00:00

但是sqldeveloper或sqlplus结果中的相同insert语句是正确的。

select prm_frm_dt,prm_to_dt from PARAM_INF;

PRM_FRM_DT         PRM_TO_DT        
------------------ ------------------
01-JUL-14 12:00:00 01-JUL-14 12:00:00 

1 个答案:

答案 0 :(得分:1)

public void param()
{
    OleDbCommand cmd2 = new OleDbCommand("INSERT INTO PARAM_INF(PRM_FRM_DT,PRM_TO_DT) values('" + String.Format("{0:yyyy-MMM-dd}", Convert.ToDateTime("01-Jul-2014")) + "','" + String.Format("{0:yyyy-MMM-dd}", Convert.ToDateTime("01-Jul-2014")) + "')", con) { CommandType = CommandType.Text };
    if (con.State == ConnectionState.Closed)
    {
        con.Open();
    }
    cmd2.ExecuteNonQuery();
    con.Close();
}

这肯定会帮助你......一旦我也有同样的问题......