filter - OData 字符串错误和日期格式问题
问题描述
我尝试使用 OData 让数据表现出色。当我使用下面的链接时,它工作正常: http://xts/odata/AuditAggregationOdata 或 http://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"/
谢谢
解决方案
这似乎是一个内部服务器错误。
当我尝试不同的实体但条件相同时,它工作得很好。我把正确的解决方案放在下面:
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
推荐阅读
- graphql - 如何在 apollo-server 中获取 Graphql 请求正文
- vue.js - 定制一个
带有标签和无效消息 - mongodb - Spring数据MongoDB中的@ExistQuery
- botframework - 我无法使用 Azure 机器人服务在机器人中进行身份验证
- odata - 如何过滤掉 OData v4 查询中的空数组/列表?
- r - 使用表格重命名存储在文件夹中的文件
- oracle - PL/SQL:问题实现触发器
- kotlin - 在 KotlinJS Gradle 插件中禁用 Node.js 下载
- string - 如何从字符串中删除 K 个字符,使得每个字符最少
- flutter - 确定滚动小部件高度