Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获得c语言中的最后7天#_C# - Fatal编程技术网

C# 如何获得c语言中的最后7天#

C# 如何获得c语言中的最后7天#,c#,C#,我的数据库中包含以下数据: Id FirstName Date 1 Heru 2019-09-10 09:00:00.000 2 Angie 2019-09-10 09:00:00.000 3 Gel 2019-09-02 09:00:00.000 我想得到它的最后7天: 这是我的密码: var dateRange = new DateTimeFromTo(); var curren

我的数据库中包含以下数据:

Id      FirstName          Date
1       Heru         2019-09-10 09:00:00.000
2       Angie        2019-09-10 09:00:00.000
3       Gel          2019-09-02 09:00:00.000
我想得到它的最后7天:

这是我的密码:

var dateRange = new DateTimeFromTo();
var currentDate = DateTime.Now;
var allSalesPro = new List<SalesProStats>();

dateRange.From = new DateTime(currentDate.Year, currentDate.Month, currentDate.Day).AddDays(-7);
dateRange.To = currentDate;
allSalesPro = AddSalesProToList(storeId, filter, dateRange);
var dateRange=new DateTimeFromTo();
var currentDate=DateTime.Now;
var allSalesPro=新列表();
dateRange.From=新的日期时间(currentDate.Year、currentDate.Month、currentDate.Day).AddDays(-7);
dateRange.To=当前日期;
allSalesPro=AddSalesProToList(存储ID、筛选器、日期范围);
我的代码运行良好

但有一些例子表明,如果我的 当前日期从8:00:00开始

将没有可检索的数据

非常感谢!:)

如果您只想要日期(而不是日期时间):


如果我理解正确的话,你会以排他性的方式过滤这段时间。比如:

Date >= fromDate AND Date < toDate
这样,您就完全绕过了时间组件,因为您使用的是完整的日期。还请注意,我使用的是
DateTime.Today
而不是
.Now
,以避免在
DateTime
对象中获得不必要的时间


这种方法的另一种选择是重写
AddSalesProToList
,相应地重写
toDate
参数。这使得该方法的使用更加容易,因为开发人员不需要考虑他们提供的内容。我不知道这是否适用于您的情况,但我仍然想指出。

要获取过去7天(包括今天)的数据,请尝试以下方法

var dateRange = new DateTimeFromTo();
dateRange.From = DateTime.Today.AddDays(-7);
dateRange.To = DateTime.Today.AddDays(1).AddSeconds(-1);

allSalesPro = AddSalesProToList(storeId, filter, dateRange);

焦积云的反应是正常的,但是这个反应会持续8天(
=1-(-7)

还有今天加上六天前


谢谢

您可以使用
var currentDate=DateTime.Now.Date.AddDays(-7)以在没有时间的情况下获得正确的日期。这完全取决于你的情况,你的行动是什么?(,=)

AddSalesProToList做什么?您是否打算在将来退货<如果SQL查询是简单的“介于@From和@To之间”或
DateTime,则code>From
没有时间部分,
To
应该返回到当前时间的所有记录。今天
。这可能也行不通,因为
From
只是一个日期,而
DateTime。现在
DateTime晚。今天
。最有可能的是,在未来的某个日期,查询无法覆盖。我提供的替代方案确实可以,谢谢您的说明。我会相应地更新我的答案。因此,如果我当前的日期是2019-09-09 18:00:00,那么结果将是dateRange。From=2019-09-03 dateRange.To=2019-09-10 12:00:00,这非常令人困惑,因为我当前的日期是今天。。还有别的办法吗?除此之外:dateRange.To=新的日期时间(currentDate.Year、currentDate.Month、currentDate.Day、23、59、59)<代码><2019-09-10 12:00:00
意味着明天开始之前的一切。包括今天。绝对不要使用您的想法@BellmeeStore,因为它无法处理午夜前10毫秒的时间。而这个答案(
)可以解决这个问题。@BellmeeStore欢迎来到按日期和时间段过滤的噩梦。做这件事时你必须小心。首先,你必须问自己,日期的时间是否相关。如果不是(显然您不希望它们相关),则必须特别注意从过滤器的操作数中删除它们。另一件需要注意的事情是和包含筛选器(小于或等于)和独占筛选器(小于)之间的区别。
dateRange.From = DateTime.Today.AddDays(-7);
dateRange.To = DateTime.Today.AddDays(1);
var dateRange = new DateTimeFromTo();
dateRange.From = DateTime.Today.AddDays(-7);
dateRange.To = DateTime.Today.AddDays(1).AddSeconds(-1);

allSalesPro = AddSalesProToList(storeId, filter, dateRange);
dateRange.From = DateTime.Today.AddDays(-6);
dateRange.To = DateTime.Today.AddDays(1);