вычисляемый столбец в Datatable с использованием Datatable-Expression

1

Мне нужен новый столбец в моем 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().
  • 0
    Хотите знать, как должно выглядеть мое выражение лица
  • 0
    workTable.Columns ["BuildDate"]. Выражение =?
Теги:
datetime
datatable

2 ответа

0

Я думаю, что невозможно использовать любую функцию DateTime в DataColumn.Expression. (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()));
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()";

Я предполагаю, что вы используете hardcoded значение для dtDateTime. Также unixTimeStamp должен быть double, он взорвется, если его string, вы можете попробовать.

  • 0
    Думаю, ты близок к ответу. Я попробовал ниже
  • 0
    новый DateTime (1970,1,1,0,0,0,0, System.DateTimeKind.Utc) .AddSeconds (unixTimeStamp) .ToLocalTime () ".. получить ошибку« Отсутствует операнд после оператора даты и времени »
Показать ещё 8 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню