繁体   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