C# 使用Datatable表达式在Datatable中计算列
我需要在我的datatable中有一个转换的时间戳的新列。我的桌子看起来像C# 使用Datatable表达式在Datatable中计算列,c#,datetime,datatable,C#,Datetime,Datatable,我需要在我的datatable中有一个转换的时间戳的新列。我的桌子看起来像 BuildId unixTimeStamp BuildDate 1 1401286554000 - 2 1401286554000 - 3 1401286554000 - 需要使用以下公式计算新列BuildDate dtDateTime.AddSeconds( unixTimeStamp ).ToLocalTime(); 我怎样才能达到同样的效果?一直在尝试用同样的方法 wo
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().
试着改变
workTable.Columns["BuildDate"].Expression ="dtDateTime.AddSeconds(unixTimeStamp).ToLocalTime()";
到
我假设您正在使用dtDateTime的硬编码值。
另外,
unixtimestap
必须是double
,如果它的字符串
,它会爆炸,您可以尝试强制转换。我认为在DataColumn.Expression中不可能使用任何DateTime函数。()
所以我不会用表达式,而是用循环
foreach (DataRow dr in workTable.Rows)
dr["BuildDate"] = new DateTime(1970, 1, 1,0,0,0).AddSeconds(int.Parse(dr["unixTimeStamp"].ToString()));
想知道我的表达式应该是什么样子的WorkTable.Columns[“BuildDate”]。表达式=?我想你已经接近答案了。我尝试了下面的DateTime(1970,1,1,0,0,0,0,System.DateTimeKind.Utc).AddSeconds(unixTimeStamp).ToLocalTime()。获取错误“DateTime运算符后缺少操作数”
unixTimeStamp
必须为双精度,如果它的字符串变大,您可以尝试强制转换。将表达式更改为新的DateTime(1970,1,1,0,0,0,0,System.DateTimeKind.Utc).addmillizes(timestamp/1000).ToLocalTime()…不走运。但当我用timestamp的示例值尝试同样的方法时,效果很好。我已经更新了我的答案。/100不会自动转换这不是javascript。
foreach (DataRow dr in workTable.Rows)
dr["BuildDate"] = new DateTime(1970, 1, 1,0,0,0).AddSeconds(int.Parse(dr["unixTimeStamp"].ToString()));