我正在尝试将此SQL转换为linq语法,但我遇到了一些困难。
SELECT trans_date, count(*) FROM table1
GROUP BY trans_date
结果
01-01-2001 | 12个
03-01-2001 | 45
var q = from a in table1
let dt = q.trans_date.value
group q by new {y = dt.Year.ToString(), m = dt.Month.ToString(), d = dt.Day.toString()}
into g
select new { int NumOf = g.Count(), DateTime TransDate = DateTime.Parse(g.Key.y + g.key.m + g.Key.d)}
使用DateTime.Parse的最后一个“版本”给出了运行时错误。
如何处理q.trans_date是一个可以为空的DateTime并获取我的结果集?
答案 0 :(得分:3)
首先,您没有得到该代码的运行时错误 - 您将收到编译时错误,因为您的代码无效C#。
试试这个:
var q = from a in table1
group a by a.trans_date.value.Date into g
select new {
Count = g.Count(),
TransDate = g.Key
};