使用DateTimeOffset进行OData查询

时间:2017-05-05 03:27:01

标签: linq odata datetimeoffset

使用LINQPad查询OData v2服务器以查找最近修改过的记录并获得意外结果:

// Define a DateTimeOffset to test against
DateTimeOffset testDateTimeUTC = DateTimeOffset.UtcNow.AddMinutes(-180);

// Detect changes that have occurred since the test DateTimeOffset  
var changedRecords = EmpJob
.Where (e => e.lastModifiedDateTime >= testDateTimeUTC);

changedRecords.Dump();

生成查询字符串:

https://api10.successfactors.com/odata/v2/EmpJob()?$filter=lastModifiedDateTime ge datetimeoffset'2017-05-05T00:12:18.9383091Z'

我得到三个结果,一个是正确的,另外两个是带时间戳的: 2016年3月10日上午1:01 +00:00和2016年12月21日上午1:37 +00:00显然无效。

对我而言,它看起来像服务器端问题,任何人都可以看到我错过的问题吗?

1 个答案:

答案 0 :(得分:0)

使用包含开始日期和结束日期的过滤器解决了问题。