Есть ли способ запросить NSDate
в CoreData
. Например, если мне нужен объект с наивысшим значениемNSDate
? Я вижу, что NSExpression
«max:» принимает только NSNumber
.Query max NSDate в основных данных
ответ
Вы действительно можете задать SQL только для этого значения, а не объект с этим значением:
NSExpression *date = [NSExpression expressionForKeyPath:@"date"];
NSExpression *maxDate = [NSExpression expressionForFunction:@"max:"
arguments:[NSArray arrayWithObject:maxDate]];
NSExpressionDescription *d = [[[NSExpressionDescription alloc] init] autorelease];
[d setName:@"maxDate"];
[d setExpression:maxSalaryExpression];
[d setExpressionResultType:NSDateAttributeType];
[request setPropertiesToFetch:[NSArray arrayWithObject:d]];
NSError *error = nil;
NSArray *objects = [managedObjectContext executeFetchRequest:request error:&error];
if (objects == nil) {
// Handle the error.
} else {
if (0 < [objects count]) {
NSLog(@"Maximum date: %@", [[objects objectAtIndex:0] valueForKey:@"maxDate"]);
}
}
более подробно под кокетливым Managed Objects -> Получение конкретных значений в документации CoreData.
или
Perfomed запрос, заказанные на поле даты DESCENDING и используя setFetchLim Это: 1. Неплохо, но, по крайней мере, это сработало.
вы можете получить его с
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"tablename"];
fetchRequest.fetchLimit = 1;
fetchRequest.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"yourDate" ascending:NO]];
NSError *error = nil;
id person = [managedObjectContext executeFetchRequest:fetchRequest error:&error].firstObject;
Вы можете сделать это прямо в SQLite-- не извлекая все, а затем фильтровать результат, и без сложности NSExpression
.
Чтобы получить один объект, который имеет максимальную дату, сделать что-то вроде (предполагается, что имя сущности Entity
и атрибут Дата timeStamp
):
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Event"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"timeStamp = [email protected]"];
fetchRequest.predicate = predicate;
ли Выборки. Вы получите (не более) один результат, который будет экземпляром с максимальной датой.
Если вы хотите, чтобы получить только дату, а не весь управляемый объект, добавьте это, прежде чем делать выборки:
fetchRequest.resultType = NSDictionaryResultType;
fetchRequest.propertiesToFetch = @[ @"timeStamp" ];
- 1. Сравнение основных данных NSDate
- 2. Извлечение NSDate из основных данных
- 3. Основных данные выборки предиката NSDate
- 4. Max() в LINQ Query
- 5. Сохранение даты в основных данных
- 6. Ошибка MySQL Query max
- 7. python dbf max query
- 8. Max Inventory SQL Query
- 9. Предикат подзапроса основных данных
- 10. MongoDb Max Query
- 11. Получение Max ID от основных данных и sqlite
- 12. Сложный поиск основных данных
- 13. Access Query MAX() Замедляет запрос
- 14. UIDatePicker Не хранить время в основных данных
- 15. Первичная миграция основных данных
- 16. Linq query w/sub query и max
- 17. NSDate Min и Max Возможные значения
- 18. Быстрый выбор Max SQL Query
- 19. Об основных атрибутах даты данных
- 20. sql query performance: find max
- 21. mysql max (timestamp) query nodejs
- 22. Как сохранить строки в основных данных
- 23. Неисправность основных данных
- 24. путаница с реализацией основных данных
- 25. Как хранить NSDate в базовых данных?
- 26. Как сохранить изображение в основных данных
- 27. Query над Max с функцией
- 28. Mysql JOIN query MAX value
- 29. SQL Query MAX с SUm
- 30. SQL Nested Query MAX (date)
вы хотите fech объекта с максимальной датой от лица? –