首页 > 解决方案 > OData 字符串错误和日期格式问题

问题描述

我尝试使用 OData 让数据表现出色。当我使用下面的链接时,它工作正常: http://xts/odata/AuditAggregationOdatahttp://xts/odata/AuditAggregationOdata/ ?$filter=(ObjectId%20eq%2041143%20)

但是,当我尝试使用某些日期范围或日期函数时,它不起作用。我尝试编写所有内容,但没有正确的结果:

1. http://xts/odata/AuditAggregationOdata/ ?$filter=year(FirstRead)%20eq%202016

错误消息:无法连接我们在尝试连接时遇到错误详细信息:“Microsoft.Mashup.Engine1.Library.Resources.HttpResource:请求失败:OData 版本:3 和 4,错误:远程服务器返回错误:(500 )内部服务器错误。(调用目标已引发异常。)OData 版本:4,错误:远程服务器返回错误:(500)内部服务器错误。(内部服务器错误)OData 版本:3,错误:远程服务器返回错误:(500)内部服务器错误。(调用目标已抛出异常。)“

或者这个

2. http://xts/odata/AuditAggregationOdata/ ?$filter=(FirstRead%20gt%20datetime%272019-01-01T00:00:00Z%27%20and%20FirstRead%20lt%20datetime%272019-01-03T00:00 :00Z%27)

错误消息:详细信息:“Microsoft.Mashup.Engine1.Library.Resources.HttpResource:请求失败:OData 版本:3 和 4,错误:远程服务器返回错误:(400) 错误请求。(URI 中指定的查询无效。检测到类型不兼容的二元运算符。找到运算符类型“GreaterThan”的操作数类型“Edm.DateTimeOffset”和“Edm.DateTime”。)OData 版本:4,错误:远程服务器返回错误:( 500) Internal Server Error. (Internal Server Error) OData Version: 3, Error: The remote server returned an error: (400) Bad Request. (URI 中指定的查询无效。检测到类型不兼容的二元运算符. 找到运算符类型“GreaterThan”的操作数类型“Edm.DateTimeOffset”和“Edm.DateTime”。)”

注意:属性名称="FirstRead" 类型="Edm.DateTimeOffset"/

谢谢

标签: filterconnectionodata

解决方案


这似乎是一个内部服务器错误。

当我尝试不同的实体但条件相同时,它工作得很好。我把正确的解决方案放在下面:

http://xts/odata/ProfileData(path='Odata_test%7Codata_test')?$filter=year(From)%20eq%202019

http://xts/odata/ProfileData(path='Odata_test%7Codata_test')?$filter=From%20ge%20datetimeoffset%272016-01-01%27%20and%20From%20lt%20datetimeoffset%272020-01-01%27

推荐阅读