带 DateTimeOffset 的 OData 查询
OData Query with 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'
我得到三个结果,一个是正确的,另外两个带有时间戳:
3/10/2016 1:01 AM +00:00 和 21/12/2016 1:37 AM +00:00 显然无效。
对我来说,这看起来像是服务器端问题,有人能看到我遗漏的问题吗?
使用带有开始和结束日期的过滤器解决了这个问题。
使用 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'
我得到三个结果,一个是正确的,另外两个带有时间戳: 3/10/2016 1:01 AM +00:00 和 21/12/2016 1:37 AM +00:00 显然无效。
对我来说,这看起来像是服务器端问题,有人能看到我遗漏的问题吗?
使用带有开始和结束日期的过滤器解决了这个问题。