如何解决如何在Odata V2中将类型为Edm.String的属性转换为数字
我正在查询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代理。
解决方法
好吧,看来您可以这样做:
/Bar?$filter=Foo gt '631148400000'
并且不需要强制转换。我假设gt是按字母数字方式应用的,如果以数字方式应用它具有相同的效果?
但是,当使用时间戳631148400000时,我没有得到任何结果(这将我推向String的问题)。我确实获得了具有最近时间戳记的结果(在2019年或2020年)。
我不确定这是Odata V2问题还是SAP CDS模拟服务问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。