1

我需要编写一个 NSPredicate 来查看提供的日期是否介于内部某个时间之间。

例如,如果我提供数据12 Mar, 2012。它需要看看它是否介于startdate和之间enddate

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(statrDate >= %@) AND (enddate <= %@)", providedDate, ProvidedDate];

1.) 在上面的例子startdate中是10 Mar 2012,并且endDate20 Mar 2012。但是NSPredicate由于我已将 2012 年 3 月 12 日指定为providedDate.

2.) 我可以利用这个BETWEEN子句吗?

4

2 回答 2

1

Just remove brackets and try :

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"statrDate >= %@ AND enddate <= %@", providedDate, ProvidedDate];
于 2012-04-23T04:08:25.373 回答
1

使用复合谓词:

NSPredicate *greaterThanPredicate = [NSPredicate predicateWithFormat:@"statrDate <= %@", providedDate];
NSPredicate *lessThanPredicate = [NSPredicate predicateWithFormat:@"enddate >= %@", providedDate];
NSPredicate *betweenPredicate = [NSCompoundPredicate andPredicateWithSubpredicates:[NSArray arrayWithObjects:greaterThanPredicate, lessThanPredicate, nil]];

我用过>=<=因为你用过。如果它不应该是包容性的,请分别切换到><

于 2012-04-23T01:36:58.270 回答