1

指定された日付が内部の特定の時間の間にあるかどうかを確認するために、NSPredicate を作成する必要があります。

たとえば、データを提供するとします12 Mar, 2012。と の間にあるかどうかを確認する必要がstartdateありますenddate

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

1.) 上記の例のstartdate10 Mar 2012、およびendDateです20 Mar 2012。しかし、NSPredicate2012 年 3 月 12 日を として指定したため、何も返されませんprovidedDate

2.)BETWEENこのシナリオで句を使用できますか

4

2 に答える 2

1

括弧を外して試してみてください:

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 に答える