我正在使用DBAccess
框架和我的模型之一存储记录创建日期的日期,只需使用[NSDate date]
并使用DBAccess
框架存储到数据库。现在,当我尝试使用查询检索时,它失败了。我想只检索最近7天的记录,并编写了一个像
DBResultSet* result = [[[weightModel query] whereWithFormat:@"savedAt >= %@ AND savedAt <= %@", beforeDate, beforeDate] fetch];
beforeDate为NSDate
的地方
-(NSDate*)getDateFor:(int)daysBack {
NSDate* date = [NSDate date];
NSDateComponents* comps = [[NSDateComponents alloc]init];
comps.day = -daysBack;
NSCalendar* calendar = [NSCalendar currentCalendar];
NSDate* beforeDate = [calendar dateByAddingComponents:comps toDate:date options:0];
return beforeDate;
}
任何人都知道如何在过去7天内获得NSDate
个记录?
但是,我已使用
确认存在这些记录weightModel* weightRecord = [[[weightModel query] fetch] objectAtIndex:i];
[dates weightRecord.savedAt];
并打印出来。
答案 0 :(得分:0)
最初我回答了你的问题,说你生产和查询日期的方式似乎没有问题。然而,一个小小的微妙之处逃过了我,那就是,你在查询日期&gt; =&amp;&amp; &lt; = 其中参数是相同的日期值。
鉴于NSDate
对象的准确度大于1秒,这意味着您的记录必须在7天前以完全相同的毫秒(*引用要求,不确定实际准确性)存在。哪个不太可能返回任何结果。
您需要做的是创建一个日期函数,它返回一天的开始和一天的结束。
或者,您可以使用SQLite
datetime
函数为您执行此操作。但我建议将其保留在对象内。
由于 阿德里安