亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

日期范圍搜索中不顯示相等日期

日期范圍搜索中不顯示相等日期

C#
MMMHUHU 2022-06-18 17:15:04
當我設置結束日期時,例如 31.08.2018,沒有找到包含 8 月 31 日的記錄,但它們存在于 DB 中,直到 8 月 30 日為止。我需要一個帶有每月第 31 天的日期顯示。模型中的日期//...public Nullable<System.DateTime> dt_corr { get; set; }//...控制器public ActionResult Index(DateTime? startdate, DateTime? enddate, int? page){   var samp = from s in db.Samples              select s;   if (startdate != null)  // also tried startdate.HasValue    {      samp = samp.Where(s => s.dt_corr >= startdate); //also tried startdate.Value       ViewBag.StartDate  = startdate;   }   if (enddate != null)// also tried enddate.HasValue   {      samp = samp.Where(s => s.dt_corr <= enddate); // also tried enddate.Value , no difference      ViewBag.EndDate = enddate;        {         int pageSize = 10;         int pageNumber = (page ?? 1);         return View(sampl.ToPagedList(pageNumber, pageSize));      }看法    //...    @using (Html.BeginForm("Index", "Samples", FormMethod.Get))    {       <p>          Date          @Html.Label("StartDate", "Start Date:")          <input class="startdate" id="startdate" name="startdate" type="date" value="">          @Html.Label("EndDate", "Final Date:")          <input class="enddate" id="enddate" name="enddate" type="date" value="">  // in the example class="startdate" too, no difference          <input type="submit" value="Search"/>      </p>    }    // ...    Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of     @Model.PageCount    @Html.PagedListPager(Model, page => Url.Action("Index",        new { page, startdate = ViewBag.StartDate, enddate = ViewBag.EndDate }))
查看完整描述

3 回答

?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

我們應該TimeDateTime我們想要比較的時候開始截斷Date,所以你可以像這樣使用EntityFuctions.TruncateTime()方法:

 samp = samp.Where(s => EntityFunctions.TruncateTime(s.dt_corr) <= EntityFunctions.TruncateTime(enddate));

EntityFunctions放置在System.Data.Objects命名空間中,因此添加using System.Data.Objects;到您的類中。


查看完整回答
反對 回復 2022-06-18
?
慕容3067478

TA貢獻1773條經驗 獲得超3個贊

似乎在您的數據庫中會有一條記錄,dt_corr = "2018-08-31 12:33:32.130"并且您要與之比較的是enddate = "2018-08-31 00:00:00.000". 所以那些記錄不會出現。

嘗試如下。

samp = samp.Where(s => s.dt_corr != null && s.dt_corr.Value.Date <= enddate.Value.Date);



查看完整回答
反對 回復 2022-06-18
?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

當您使用“8 月 31 日”作為結束日期時,您實際上是在使用“8 月 31 日,午夜”(0:00)。所以你幾乎錯過了所有的日期 - 正如你發現的那樣。


簡單的解決方案:只需添加一天并使用<比較


代替


samp = samp.Where(s => s.dt_corr <= enddate);

利用


var realend = enddate.Value.AddDays(1);

samp = samp.Where(s => s.dt_corr < realend);


查看完整回答
反對 回復 2022-06-18
  • 3 回答
  • 0 關注
  • 141 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號