查找没有时间部分的Azure搜索日期

时间:2019-09-24 07:16:18

标签: azure-cognitive-search

我找不到仅使用日期从Azure搜索获取日期的方法。

索引中的日期如下:“ 2019-10-15T18:00:00Z”,“ 2019-10-22T18:00:00Z”,“ 2019-10-29T18:00:00Z”

如果我尝试StartDate/any(s: s eq 2019-10-15T18:00:00Z),我会得到结果 但是使用StartDate/any(s: s eq 2019-10-15)不会出现

我已经在date OData函数中尝试过使用StartDate/any(s: date(s) eq 2019-10-15),但出现错误“不支持函数'date'。”

有什么方法可以不使用时间部分来获取日期吗?

2 个答案:

答案 0 :(得分:0)

  

以OData V4格式表示的日期和时间值:yyyy-MM-ddTHH:mm:ss.fffZyyyy-MM-ddTHH:mm:ss.fff[+|-]HH:mm DateTimeOffset 字段的精度限制为毫秒。如果您以毫秒级的精度上传DateTimeOffset值,则返回的值将四舍五入到毫秒。

将带有时区信息的DateTimeOffset值上载到索引时,Azure搜索会将这些值标准化为UTC

请参考Azure搜索中的supported data types

答案 1 :(得分:0)

从2019年5月6日的api版本开始,将不再支持在Azure搜索的过滤器中使用日期文字。这是我们从未打算支持的“意外功能”。无法获得任何结果的原因是,从Edm.DateEdm.DateTimeOffset的隐式转换假定了UTC的午夜时间,而索引中的日期是UTC的下午6点。

我们建议在过滤器中明确提供时间和偏移量(对于UTC为Z),以避免出现此问题。

如果您希望Azure搜索本身支持Edm.Date类型的字段和过滤器,请投票给this User Voice suggestion