0

先生/女士,

我将执行 Oracle 批量插入,但绑定参数 Papameters 无效:System.dateTime 在这里发出警告。

Created Date 的字段是 timestamp(0),其中 22-MAR-13 08.13.27.000000000 PM 是唯一可接受的格式。

但是当我尝试从字符串转换为 DateTime 时,如下所示:

2013 年 3 月 22 日晚上 8:00:00

使用以下方法:

 item.CreatedDate = Convert.ToDateTime("19-MAR-13 08.13.27 PM");

// 下面是 ORACLE 大容量插入

        using (OracleConnection myConnection = new OracleConnection(myConnectionString))
        {
            myConnection.Open();
            using (var copy = new OracleBulkCopy(myConnection))
            {
                copy.DestinationTableName = "T_BQ";
                copy.BulkCopyTimeout = 10;
                copy.BatchSize = 1000;
                var query = from item in list select item;
                var dt = new System.Data.DataTable();
                dt = ConvertToDataTable(query);
                copy.WriteToServer(dt);
                copy.Dispose();
                copy.Close();
            }
            myConnection.Dispose();
            myConnection.Close();
        }
4

3 回答 3

3

您可以将 DateTime.TryParseExact用于自定义datetime格式:

 string strDateStarted = "19-MAR-13 08.13.27 AM";
 DateTime datDateStarted;
 DateTime.TryParseExact(strDateStarted, new string[] { "dd-MMM-yy hh.mm.ss tt" }, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out datDateStarted);
 Console.WriteLine(datDateStarted);
于 2013-03-25T07:11:52.223 回答
3

您应该使用:for 时间分隔符.

尝试这个:

item.CreatedDate = Convert.ToDateTime("19-MAR-13 08:13:27 PM");
于 2013-03-25T03:06:03.650 回答
2

尝试这个,

dateVariable.ToString("MM/dd/yyyy hh:mm:sstt");
于 2013-03-25T03:19:14.720 回答