まず、NSDateがNSTimeInterval内にあるかどうかをチェックするのは意味がありません。なぜなら、NSTimeIntervalはその場所ではなく時間の長さを指定するだけなのでです。代わりに、間隔の開始と終了を指定する2つの別々のNSDateを使用する必要があります。
次のようになります(beginTimeとendTimeはNSDatesです)。
NSFetchRequest *request = [[NSFetchRequest alloc] init];
request.entity = [NSEntityDescription entityForName:@"YourEntityName" inManagedObjectContext:yourContext];
NSPredicate *beginningPredicate = [NSPredicate predicateWithFormat:@"createdAt >= %@", beginningTime];
NSPredicate *endPredicate = [NSPredicate predicateWithFormat:@"createdAt <= %@", endTime];
request.predicate = [NSCompoundPredicate andPredicateWithSubpredicates:[NSArray arrayWithObjects:beginningPredicate, endPredicate, nil]];
NSArray *results = [yourContext executeFetchRequest:request error:NULL];