【问题标题】:Problem using date when querying the appengine datastore查询 appengine 数据存储时使用日期的问题
【发布时间】:2011-02-08 06:06:37
【问题描述】:

我正在运行这个查询:

SELECT FROM com.Data WHERE entryDate > DATE('2010-3-16')

我收到此错误:

org.datanucleus.store.appengine.query.DatastoreQuery$UnsupportedDatastoreFeatureException:查询 DATE('2010-3-16')> 出现问题:解析表达式时方法不受支持:InvokeExpression{[null].DATE(Literal{2010- 3-16})}

当我在管理控制台上使用它时,同样的查询也有效。但它不适用于代码(java),无论是在本地还是在部署时。有什么想法吗?

【问题讨论】:

    标签: google-app-engine datetime google-cloud-datastore gql


    【解决方案1】:

    您是否尝试过使用日期时间?日期、时间和日期时间都在内部存储为日期时间; Java SDK 可能没有为您实现这种自动转换。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题

      试试:

      Query query = pm.newQuery("select from com.Data where entryDate > myDate");
      query.declareImports("import java.util.Date");
      query.declareParameters("Date myDate");
      query.execute(now);
      

      【讨论】:

        【解决方案3】:

        我建议将所有日期存储为 Long 并在执行查询之前在静态日期执行转换。

        【讨论】:

          猜你喜欢
          • 2019-04-09
          • 1970-01-01
          • 1970-01-01
          • 2021-06-04
          • 1970-01-01
          • 1970-01-01
          • 2016-05-16
          • 2011-09-26
          • 1970-01-01
          相关资源
          最近更新 更多