OData V4 日期比较

Posted

技术标签:

【中文标题】OData V4 日期比较【英文标题】:OData V4 date comparison 【发布时间】:2020-12-01 08:29:02 【问题描述】:

我需要有关此问题的帮助。我在 Net Core 3.0 中有一个带有 c# 的后端,我有一个 Machine 实体,其中包含一系列属性,3 个 Datetime 类型实体。 (我已经安装了 NuGet 包 'Microsoft.AspNetCore.OData 7.5.2')

在我的数据库中,我有这些具有这种格式的实体(例如:AssemblyDate:2014-02-27 00:00:00.000)

在我的 Postman 中,我正在尝试构建下一个 OData 咨询: https://localhost:xxxxx/api/v1/Machine/OData?$top=11&$skip=0&$filter=AssemblyDate ge 2013-10-30T00:00:00.000Z

但我得到的结果是:无法将类型为“Microsoft.OData.UriParser.ConvertNode”的对象转换为类型“Microsoft.OData.UriParser.SingleValuePropertyAccessNode”

我不明白问题出在哪里。请帮我解决这个问题。

【问题讨论】:

【参考方案1】:

我认为您示例中的网址是问题所在。您说您要查询的实体是“机器”实体,但您发布的网址中有一个额外的“OData”导航。尝试: https://localhost:xxxxx/api/v1/Machine?$top=11&$skip=0&$filter=AssemblyDate ge 2013-10-30T00:00:00.000Z

这假定“机器”实体集的端点是“机器”。但是,据我所知,惯例是将端点设为复数,因此它可能是“机器”。

【讨论】:

以上是关于OData V4 日期比较的主要内容,如果未能解决你的问题,请参考以下文章

.Net Core 3.1 Web Api 的自定义 OData 日期时间序列化程序

Mysql 日期比较

CDateTimeCtrl类型的日期如何比较大小

js关于日期比较大小

java输入的日期与当前的日期做比较?

delphi日期时间比较大小