0

サー/マダム、

Oracleの一括挿入を実行しますが、バインドパラメータPapametersが無効です:System.dateTimeがここで警告します。

Created Dateのフィールドはtimestamp(0)であり、これは2013年3月22日08.13.27.000000000PMのみが許可された形式です。

しかし、次のように文字列からDateTimeに変換しようとすると:

2013年3月22日20:00:00

次の方法を使用します。

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

//以下はORACLEBULKINSERTです

        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

:代わりに時間区切り文字に使用する必要があります.

これを試して:

item.CreatedDate = Convert.ToDateTime("19-MAR-13 08:13:27 PM");
于 2013-03-25T03:06:03.650 に答える
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 に答える
2

これを試して、

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