使用Datatable-Expression在Datatable中计算列

时间:2014-06-18 10:36:49

标签: c# datetime datatable

我的数据表中需要一个具有转换时间戳的新列。我的表看起来像..

BuildId unixTimeStamp BuildDate
1       1401286554000  -
2       1401286554000  -
3       1401286554000  -

需要使用以下公式计算新列BuildDate

dtDateTime.AddSeconds( unixTimeStamp ).ToLocalTime();

我怎样才能实现同样的目标?一直试图使用

做同样的事情
workTable.Columns["BuildDate"].Expression ="dtDateTime.AddSeconds(unixTimeStamp).ToLocalTime()";

获取以下错误

The expression contains undefined function call dtDateTime.AddSeconds().

2 个答案:

答案 0 :(得分:0)

尝试更改

workTable.Columns["BuildDate"].Expression ="dtDateTime.AddSeconds(unixTimeStamp).ToLocalTime()";

workTable.Columns["BuildDate"].Expression = "new DateTime(2010, 10, 10, 10, 10, 10).AddSeconds(double.Parse(unixTimeStamp)).ToLocalTime()";

我假设您正在为dtDateTime使用硬编码值。 此外unixTimeStamp必须为double,如果string {{1}},它会爆炸,你可以尝试施放。

答案 1 :(得分:0)

我认为不可能在DataColumn.Expression中使用任何DateTime-Function。 (https://msdn.microsoft.com/de-de/library/system.data.datacolumn.expression%28v=vs.110%29.aspx) 所以我不会尝试使用表达式但使用循环

foreach (DataRow dr in workTable.Rows)
    dr["BuildDate"] = new DateTime(1970, 1, 1,0,0,0).AddSeconds(int.Parse(dr["unixTimeStamp"].ToString()));