将datable克隆到另一个数据表

时间:2016-03-29 19:01:20

标签: c# datatable

有一个dataTable A,其中包含一些包含DateTime值的cloum,如何将A克隆到另一个dataTable B,只保留A的DateTime列的日期?以下代码将保留所有尾随的零,如 20/05/2015 00:00:00 ,有没有办法截断它们?谢谢。

foreach (DataColumn col in A.Columns) 
{
  if (col.DataType == typeof(DateTime))
  {
    B.Columns[col.ColumnName].DataType = typeof(string);
  }
}
foreach (DataRow row in A.Rows) 
{
  B.ImportRow(row);
}

2 个答案:

答案 0 :(得分:0)

  1. 创建新的数据表B
  2. 复制datetime.Import所有行的所有列,从A到B
  3. 遍历B数据表行&列和格式化日期

     DataTable B = new DataTable();
    
     foreach (DataRow row in A.Rows)
     {
          foreach (DataColumn col in A.Columns)
          {
                if (col.DataType == typeof(DateTime))
                     B.Columns.Add(col.ColumnName);
          }
          B.ImportRow(row);
     }
     foreach (DataRow row in B.Rows)
     {
          foreach (DataColumn col in B.Columns)
          {
               //Console.WriteLine("Before {0}:",row[col.ColumnName]);
               row[col.ColumnName] = DateTime.Parse(row[col.ColumnName].ToString()).ToString("dd/MM/yyyy");
               //Console.WriteLine("After {0}:", row[col.ColumnName]);
          }
     }
    
  4. Output

答案 1 :(得分:0)

假设数字的格式没有改变或者是特殊字符。您可以创建一个正则表达式并将其分配给变量,如下所示:

// Regex match
var regexExp = /(^\d{2})\/(\d{2})\/(\d{4})/;