核心数据中的strftime SQL函数

时间:2016-01-22 22:46:05

标签: ios objective-c core-data nsfetchedresultscontroller nsfetchrequest

我试图在核心数据中进行抓取,然后按照我的财产日期分组。

在SQL中

SELECT      SUM(total) as value,
            date as date,
            strftime('%m-%Y', date) as convertDate  
FROM        table
GROUP BY    convertDate 

我没有看到任何可以使用strftime的功能。 有没有办法使用NSFetchRequest代替NSFetchedResultController

1 个答案:

答案 0 :(得分:-1)

您可以使用NSExpressionDescription

执行此操作 对于按NSFetchRequest分组的

,您可以看到this tutorial或此stackOverFlow question

对于此处的总和,NSExpressionDescription将添加到您的NSFetchRequest

NSExpressionDescription *expressionDescription = [[NSExpressionDescription alloc] init];
expressionDescription.name = @"sumOfAmounts";
expressionDescription.expression = [NSExpression expressionForKeyPath:@"@sum.total"];
expressionDescription.expressionResultType = NSDecimalAttributeType;

对于日期,我认为您可以在获取提取记录时使用NSDateFormatter对其进行格式化。

如果这有用,请告诉我。)

<强>更新

[fetch setPropertiesToFetch:[NSArray arrayWithObjects:statusDesc, expressionDescription, nil]];
[fetch setPropertiesToGroupBy:[NSArray arrayWithObject:statusDesc]];
[fetch setResultType:NSDictionaryResultType];
NSError* error = nil;
NSArray *results = [myManagedObjectContext executeFetchRequest:fetch
                                                         error:&error];