如何在数据表日期时间列中设置日期时间

How to set Datetime in Datatable Datetime column

我正在尝试使用以下代码将醋栗日期时间存储在数据表日期时间列中

dtRow["dCurrantDate"] = DateTime.Now;

但出现此错误:

Type of value has a mismatch with column typeCouldn't store <2019-04-18 12:32:11 PM> in dCurrantDate Column. Expected type is DateTime.

解决方法在错误信息中。 C# DateTime 等同于 SQL datetimedatetime2。检查 SQL table 中的类型,如有必要,将其设置为这些日期类型之一。

如果您在此处查看 smalldatetime 的定义,它会以不同方式存储时间。如果您需要时间,则需要去除除小时和分钟以外的所有内容,否则仅使用日期。在 Now.

后添加 .Date

根据显示的错误,数据库中列的数据类型与输入不匹配(如果列类型为datetime,AM OR PM未存储使用datetime2类型)

试试这个

    public void MakeDataTable(){
    DataTable myTable;
    DataRow myNewRow; 
    // Create a new DataTable.
    myTable = new DataTable("My Table");
    //ADDING DATETIME COLUMN
    DataColumn colDateTime = new DataColumn("DateTimeCol");
    colDateTime.DataType = System.Type.GetType("System.DateTime");
    myTable.Columns.Add(colDateTime);
    //ADDING ROW TO DATA-Table
    myNewRow = myTable.NewRow();
    myNewRow["DateTimeCol"] = System.DateTime.Now;
    myTable.Rows.Add(myNewRow);
}

基本上,将添加一个 DateTime 列,如下所示,请与您的代码进行交叉检查 `

        DataTable dt = new DataTable();

        DataColumn dc = new DataColumn();

        dc.ColumnName = "dCurrantDate";
        dc.DataType = typeof(DateTime);
        dt.Columns.Add(dc);

        DataRow dr = dt.NewRow();

        dr["dCurrantDate"] =DateTime.Now;
        dt.Rows.Add(dr);`

双单元格 = Convert.ToDouble(dataTable.Rows[行数][列数]);

日期时间匹配日期 = DateTime.FromOADate(单元格);

这是最简单的解决方案。