[英]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.