[英]Unable to compare two dates in LINQ
我正在努力比較MVC中的日期。 我嘗試了所有方法,但仍然沒有任何進展。 似乎很奇怪。
這是我的以jQuery日歷為邊界的Datetime文本框。
@Html.TextBoxFor(x => x.dateofAction, ViewBag.filterdateTime as string, new { @id = "dateofAction", @placeholder = "Date Of Action", @class = "form-control datepicker validate[required, custom[date,future[min]]]", style = "width:80%;height:20px;" })
這是我的模型領域。
public DateTime? dateofAction { get; set; }
最后這是我的查詢
upld_id = (from c in db.ts_upld_doc where (c.upld_ModifiedDateTime).Value.Year == datemodified.Year select c.upld_docid).ToArray();
我擊中斷點並檢查。 我發現如下值。
11/10/2016 12:00:00 AM
: 11/10/2016 12:00:00 AM
用戶提供的日期 2016-10-11 13:52:53.583
-SQL表(upld_ModifiedDateTime) 我嘗試了多種方式,例如僅比較日期,日期,月份,年份,但對我沒有任何幫助。 有專家可以告訴我為什么出現這個問題嗎? 非常感謝你。
更改查詢以選擇一天中開始和結束之間的值
DateTime start = datemodified.Date;
DateTime end = start.AddDays(1);
upld_id = (from c in db.ts_upld_doc
where c.upld_ModifiedDateTime >= start && c.upld_ModifiedDateTime < end
select c.upld_docid).ToArray();
要么
upld_id = db.ts_upld_doc
.Where(c => where c.upld_ModifiedDateTime >= start && c.upld_ModifiedDateTime < end)
.Select(c => c.upld_docid);
首先從upld_ModifiedDateTime中刪除時間,然后使用DateTime.Compare方法進行比較,如下所示:
upld_id = (from c in db.ts_upld_doc where
DateTime.Compare(
new DateTime(c.upld_ModifiedDateTime.Year, c.upld_ModifiedDateTime.Month, c.upld_ModifiedDateTime.Day))
,datemodified) == 0
select c.upld_docid).ToArray();
您應該在EF6中使用DbFunctions 。
var dateValue = datemodified.Date;
var upld_id = (
from c in db.ts_upld_doc
where DbFunctions.TruncateTime(c.upld_ModifiedDateTime) == dateValue
select c.upld_docid).ToArray();
如果您使用的是舊版EF,請使用EntityFunctions
var dateValue = datemodified.Date;
var upld_id = (
from c in db.ts_upld_doc
where EntityFunctions.TruncateTime(c.upld_ModifiedDateTime) == dateValue
select c.upld_docid).ToArray();
凡datemodified
聲明,以及它是如何得到它的價值呢?
如果通過Controller中的Action方法聲明並設置了datemodified
,則您選擇的參數名稱可能是問題。
因此,這將不起作用:
// MVC ignores Form field 'dateofAction' because it expects 'datemodified'.
[HttpPost]
ActionResult Index(DateTime datemodified) { ... }
鑒於這應該工作:
// MVC uses Form field 'dateofAction' to set parameter 'dateofAction'.
[HttpPost]
ActionResult Index(DateTime dateofAction) { ... }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.