LINQ Convert datetime - PullRequest
       1

LINQ Convert datetime

0 голосов
/ 04 мая 2011

Я хотел преобразовать этот запрос в LINQ

SELECT     AVG(currentvalue) AS ChartAvg, CONVERT(varchar(10), ReceivedDate, 103) AS RecDate
FROM         DatapointValues
WHERE     (CONVERT(varchar(10), ReceivedDate, 103) = '21/04/2011')
GROUP BY CONVERT(varchar(10), ReceivedDate, 103)

Я использовал приведенный ниже LINQ, но не работал,

from datapointvalues in db.DatapointValues
where
  Convert.ToString(datapointvalues.ReceivedDate) == "21/04/2011"
group datapointvalues by new {
  Column1 = Convert.ToString(datapointvalues.ReceivedDate)
} into g
select new {
  ChartAvg = (System.Decimal?)g.Average(p => p.currentvalue),
  g.Key.Column1
}

1 Ответ

0 голосов
/ 06 мая 2011

Разве вы не должны анализировать "21/04/2011" для даты и времени для сравнения, а не наоборот?Что-то в этих строках:

        var v = from datapointvalues in db.DatapointValues
                where
                  datapointvalues.ReceivedDate == DateTime.Parse("21/04/2011")
                group datapointvalues by new {
                  Column1 = datapointvalues.ReceivedDate
                } into g
                select new {
                  ChartAvg = (System.Decimal?)g.Average(p => p.currentvalue),
                  g.Key.Column1
                }

Исходя из ваших настроек локализации, Convert.ToString(datapointvalues.ReceivedDate) может возвращать строку, отличную от ожидаемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...