C# 如何返回一天的结果?
我正在尝试创建一个销售报告,用户可以在其中选择一个日期范围,并返回每天的销售总额和日期时间 我制作了一个方法,它接受两个日期时间——StartDate和EndDate,并循环这些日期之间的所有日期的对象,这样即使当天没有销售,我也可以返回日期和TotalSales=0 然后,我将其与我的GetOrders查询连接起来。如果我有一个时间间隔,比如2017-04-01-2017-04-30,这很好,但是如果我在同一天发送开始日期和结束日期,我的结果会出错。你知道我做错了什么吗 课程:C# 如何返回一天的结果?,c#,asp.net-mvc,linq,entity-framework-6,C#,Asp.net Mvc,Linq,Entity Framework 6,我正在尝试创建一个销售报告,用户可以在其中选择一个日期范围,并返回每天的销售总额和日期时间 我制作了一个方法,它接受两个日期时间——StartDate和EndDate,并循环这些日期之间的所有日期的对象,这样即使当天没有销售,我也可以返回日期和TotalSales=0 然后,我将其与我的GetOrders查询连接起来。如果我有一个时间间隔,比如2017-04-01-2017-04-30,这很好,但是如果我在同一天发送开始日期和结束日期,我的结果会出错。你知道我做错了什么吗 课程: public
public class Order
{
public int Id { get; set; }
public DateTime OrderDate { get; set; }
public virtual ICollection<OrderItem> OrderItems { get; set; }
}
public class OrderItem
{
public int Id { get; set; }
public decimal UnitPrice { get; set; }
public int Quantity { get; set; }
public int Discount { get; set; }
public virtual Order Order { get; set; }
}
public class DailySalesDto
{
public DateTime Date { get; set; }
public decimal TotalSales { get; set; }
}
/api/SalesVM/?起始日期=2017-04-25和结束日期=2017-04-26
[
{
"Date": "2017-04-26T00:00:00",
"Day": 0,
"TotalSales": 0
}
]
[
{
"Date": "2017-04-25T00:00:00",
"Day": 0,
"TotalSales": 0
},
{
"Date": "2017-04-26T00:00:00",
"Day": 0,
"TotalSales": 247
}
]
使用>=获取salesForPeriod开始日期
var salesForPeriod = db.Orders.Where(b => b.OrderDate.Day >= startDate.Day && b.OrderDate.Day <= endDate.Day);
var salesForPeriod=db.Orders.Where(b=>b.OrderDate.Day>=startDate.Day&&b.OrderDate.Day对于startime,它应该是2017年4月25日00:00:00
,对于结束时间,它应该是2017年4月25日23:59:59
。不是这样吗?如果您将startDate
和endDate
放在同一天,这意味着时差为0。您需要将时间包括到g的时间等一天的结果。我想这会解决你的问题。试着接受为答案吧,我现在明白我的错误了。很好,谢谢!几分钟后会接受为答案。请尽可能接受,谢谢
[
{
"Date": "2017-04-25T00:00:00",
"Day": 0,
"TotalSales": 0
},
{
"Date": "2017-04-26T00:00:00",
"Day": 0,
"TotalSales": 247
}
]
var salesForPeriod = db.Orders.Where(b => b.OrderDate.Day >= startDate.Day && b.OrderDate.Day <= endDate.Day);