如何将DateTime c#语言保存到oracle10g数据库中

时间:2009-08-02 07:09:48

标签: c# oracle oracle10g

有一个表==创建表newstudent(注册int,名称varchar2(20),DoJoin日期); 在c#中我输入

oraclecommand(1,'amit purohit', DateTime.Now());
//Error found 'nvalid month'
oraclecommand(1,'amit purohit', String.Format("{0:dd-MMM-yyyy}"));
//problme that save only date into database but i need time also. like '11-AUG-2009 11:22:32.0'
oraclecommand(1,'amit purohit', String.Format("{0:dd-MMM-yyyy hh:mm:ss}")
//also error get like string picture format in date time values

4 个答案:

答案 0 :(得分:3)

您的一个问题可能是Oracle的日期格式错误。

Oracle接受 yyyy / mm / dd 日期格式,我可以看到你没有使用它。

我和Jon Skeet就这个问题进行了讨论,但你可能想尝试在字符串中创建一个普通的SQL查询,然后运行查询。

您可以使用to_date函数将日期转换为正确的格式。

insert into table_name
(date_field)
values
(to_date('2003/05/03 21:02:44', 'yyyy/mm/dd hh24:mi:ss'));

(通过Standard Date and Time Format Strings

或者另一方面,您可以尝试使用一些C#函数将日期转换为正确的Oracle接受格式:Oracle/PLSQL: Insert a date/time value into an Oracle table

由于

答案 1 :(得分:1)

您应该使用参数化语句,并在其中添加包含相关数据的参数,并指定相应的参数类型。确切的格式取决于您使用的是哪种Oracle驱动程序,但它可能类似于:

command.Parameters.Add(":date", OracleDbType.DateTime).Value = ...;

答案 2 :(得分:1)

尝试这样的事情(未经测试的代码):

public void InsertDateTime(DateTime aoDateTime) {
  using (var oracleConnection = new OracleConnection("<my connection string>")) 
  {
    var oracleCommand = new OracleCommand(
      "INSERT INTO MY_TABLE (MY_DATE_FIELD) VALUES (:pMY_DATE_VALUE)", 
      oracleConnection);
    oracleCommand.Parameters.Add(
      new OracleParameter(":pMY_DATE_VALUE", aoDateTime));

    oracleConnection.Open();
    oracleCommand.ExecuteNonQuery();
  }
}

答案 3 :(得分:0)

您检查了standard date format

吗?