簡體   English   中英

如何使用linq c#在天格式中查找兩個日期之間的日期范圍

[英]how to find date range between two dates in days format using linq c#

我要求以15天,30天,45天的形式生成報告。 我必須將來自db的列表數據與當前date.example進行比較,如果相差5天。 它小於15,所以我應該發送到15天,如果> 15,我應該發送到大於15等。如何為此編寫linq查詢。請問對此有何幫助?

我不確定僅通過一個查詢就能做到這一點。 但是,我可以為您提出另一種解決方案。 您可以對每種情況使用一個查詢,而不是一個查詢。 為了比較日期差,可以使用SqlFunctions類。 為此,您應該使用:

   using System.Data.Objects.SqlClient; 

這是5天的查詢,其中包含一個虛構的表和字段:

      var lstDiff5 = (from ro in dc.Commandes where
                   SqlFunctions.DateDiff("DD", ro.Cmd_PromisDate, DateTime.Now) <= 5
                   select ro).ToList();

DateDiff函數采用日期部分(DD為天),開始日期和結束日期。 就我而言,開始日期是當前日期。 並持續15天:

                var lstDiff15 = (from ro in dc.Commandes where
                   SqlFunctions.DateDiff("DD", ro.Cmd_PromisDate, DateTime.Now) > 5 &&
                   SqlFunctions.DateDiff("DD", ro.Cmd_PromisDate, DateTime.Now) >= 15
                          select ro).ToList();

您可以根據需要更改運算符> et> =。

最后,您可以使用所有列表填充報告,也可以將列表合並到新列表中,以將報告綁定到最終列表。

您可以在linq中使用DaysBetween函數,它將返回給定日期之間的所有日期。 示例: DateTime dt = DateTime.Today.Date.AddMonths(1); int d = dt.DaysBetween(DateTime.Today).ToList().Count; DateTime dt = DateTime.Today.Date.AddMonths(1); int d = dt.DaysBetween(DateTime.Today).ToList().Count;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM