【问题标题】:iOS SimpleDB Select by dateiOS SimpleDB 按日期选择
【发布时间】:2013-05-13 14:36:49
【问题描述】:

美好的一天,

我正在尝试使用 iOS SDK 在 SimpleDB 上选择一个项目。问题是我知道如何做到这一点的唯一方法是使用 SimpleDBGetAttributesRequest 获取项目名称,然后检查日期属性并查看它是否与我请求的匹配。

这绝对是一种可怕的方法,因为我必须为此不断查询整个数据库。有没有一种简单的方法来检查属性而不是名称,或者选择日期的方法?

【问题讨论】:

    标签: ios amazon-simpledb


    【解决方案1】:

    我不是 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 将日期视为字符串,因此请在查询中适当地格式化您的日期以匹配您存储它们的方式。

    -拉里

    【讨论】:

      【解决方案2】:

      我已经用您的上述解决方案编写了一段简单的代码

      -(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];
          });
      });
      }
      

      【讨论】:

      • 您可以在其中执行类似 [networkLayer RunQuery:@"select * from TestDate where Date >= '2013-05-13T04:21' limit 100"]
      猜你喜欢
      • 2023-03-07
      • 2018-02-22
      • 1970-01-01
      • 2016-11-21
      • 1970-01-01
      • 2012-04-15
      • 1970-01-01
      • 1970-01-01
      • 2021-07-17
      相关资源
      最近更新 更多