Я знаю, что это был плохо заданный вопрос, но я видел некоторые плохие ответы, когда у меня был тот же вопрос и я столкнулся с ним. Вот как я это решил, и я отвечу, используя контекст ОП:
Разобрать дату в DateTime
переменную:
DateTime myDate = DateTime.Parse(txt);
Затем параметризовать ваш запрос:
sql = "insert into Table(MyDate) values (:myDate)";
Настройка OracleParameter
:
OracleParameter param = new OracleParameter();
param.ParameterName = "myDate";
param.OracleDbType = OracleDbType.Date;
param.Value = myDate;
Предполагая, что у вас уже есть OracleConnection
как connection
, настройте команду и добавьте свой параметр:
OracleCommand cmd = new OracleCommand(sql, connection);
cmd.Parameters.Add(param);
Execute:
cmd.ExecuteNonQuery();
Не НЕ тратить свое время на любую чушь TO_DATE
. Это для случаев, когда вы добавляете что-либо непосредственно с использованием SQL * Plus или Oracle SQL Developer, или MAYBE, куда вы хотите отправить значение переменной STRING (а не переменную DateTime) в формате EXACT, ожидаемом TO_DATE
, и назначенном в конструкция TO_DATE
в вашем запросе или хранимой процедуре (например, to_date('2013-05-13 12:13:14', 'YYYY-MM-DD HH24:MI:SS')
. Использование переменной DateTime
и присвоение ее OracleParameter
с OracleDbType
OracleDbType.Date
, при условии, что у вас есть поле DATE
в вашей таблице и может анализировать txt
в переменную DateTime
, однако, это лучший и самый простой.