在我的应用程序中,我试图在特定时间段内提取特定列中的值的总和。例如,如果我想要它为每个月拉总和我做了这样的事情.StartsWith和.Contains在比较日期时返回空值
var thisDate = DateTime.Now;
var currentDay = thisDate.Day;
var thisMonth = DateTime.Now.ToString("MM");
var thisYear = thisDate.Year.ToString();
var thisYearthisMonth = string.Format("{0}-{1}", thisYear, thisMonth);
var SpecifiedTotal = (from t in db.Transaction
where t.AgentId == CurrentUser.SalesAgent.AgentId
&& t.Status.Status == "Approved"
&& t.DateApproved.ToString().StartsWith(thisYearthisMonth)
select (decimal?)t.AmountApproved).Sum() ?? 0;
设置断点告诉我,SpecifiedTotal正在计算为零。我试图找出原因,通过删除行&& t.DateApproved.ToString().Contains(thisYearthisMonth)
,它评估到正确的价值。实质上,我试图在3月份的时间段内取出数值的总和,即2015-03年,所以我认为将存储的日期与通过查找从2015-03开始的任何日期进行比较是合理的。我可以做错什么?
@JonSkeet你的代码是否考虑了某些月份的30天和某些月份的31天? – ibnhamza 2015-03-13 19:02:29