0

我正在查询 Odata V2 服务。实体 Foo 具有类型为 Edm.String 的属性 Bar 。Bar 是以毫秒为单位的时间,遗憾的是,它被定义为一个字符串。例如“1597091642312”。

如何查询 Foo 以获取 Bar 仅在特定时间点之后的结果?

我试着投射,像这样:

/Bar?$filter=cast(Foo,Edm.Int64) gt 631148400000

但后来我得到:

不支持功能:$filter 或 $orderby 查询选项中的表达式“5”

特别是“5”对我来说没有意义。

提供服务是 SAP CAP CDS 模拟服务,使用 V4 到 V2 代理。

4

1 回答 1

0

好的,看来您可以这样做:

/Bar?$filter=Foo gt '631148400000'

并且不需要演员表。我假设 gt 是按字母数字应用的,如果它是按数字应用的,效果是一样的吗?

但是,当使用时间戳 631148400000 时,我没有得到任何结果(这将我推向了字符串成为问题的方向)。我确实得到了具有更新时间戳的结果(2019 年或 2020 年)。

我不确定这是 Odata V2 问题,还是我的 SAP CDS 模拟服务的问题。

于 2020-08-11T18:14:38.677 回答