2013-05-10 74 views
0

美好的一天,iOS SimpleDB按日期選擇

我想在使用iOS SDK的SimpleDB上選擇一個項目。問題是我知道如何做的唯一方法是使用SimpleDBGetAttributesRequest獲取項目名稱,然後檢查日期屬性並查看它是否與我請求的相匹配。

這絕對是一個可怕的方式來做到這一點,因爲我必須爲此查詢整個數據庫。有沒有簡單的方法來檢查屬性而不是名稱,或選擇日期的方式?

回答

0

我寫了一段簡單的代碼,這樣你的上述溶液

-(void)RunQuery:(NSString*)query{ 
NSLog(@"Running Query\n"); 
NSString* selectExpression=query; 
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); 
dispatch_async(queue, ^{ 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES]; 
    }); 
    @try { 
     //Code start 
     SimpleDBSelectRequest *selectRequest = [[SimpleDBSelectRequest alloc] initWithSelectExpression:selectExpression]; 
     selectRequest.consistentRead = YES; 

     SimpleDBSelectResponse *selectResponse = [sdbClient select:selectRequest]; 

     for (SimpleDBItem *item in selectResponse.items) { 
      NSLog(@"%@",item.name); 
     } 
     //Code end 
    } 
    @catch (AmazonServiceException *exception) { 
     NSLog(@"Exception = %@", exception); 
    } 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO]; 
    }); 
}); 
} 
+0

在那裏你會做這樣的事情 [networkLayer RunQuery:@「SELECT * FROM 'TestDate'其中Date> ='2013-05-13T04:21'限制100「] – raaj 2013-05-13 06:37:34

2

我不是在iOS SDK專家,但聽起來就像SimpleDBSelectRequest會爲你工作,像selectExpression:

select * from your_domain where your_date = '1970-01-01' 

,如果你知道日期,或:

select * from your_domain where your_date between '1970-01-01' and '1970-01-05' 

,如果你只知道日期範圍。

請記住,SimpleDB會像字符串一樣處理日期,因此請在查詢中適當地格式化日期以符合您存儲它們的方式。

拉里

+0

感謝這部作品 – raaj 2013-05-13 06:36:59