在我的應用程序中,我試圖在特定時間段內提取特定列中的值的總和。例如,如果我想要它爲每個月拉總和我做了這樣的事情.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