Search code examples
azure-cognitive-search

Find Azure Search date without time part


I can't find a way of getting a date from Azure Search using only the date.

The dates in the index are like: "2019-10-15T18:00:00Z","2019-10-22T18:00:00Z","2019-10-29T18:00:00Z"

If I try StartDate/any(s: s eq 2019-10-15T18:00:00Z) I get results But with StartDate/any(s: s eq 2019-10-15) nothing comes up

I have tried usin the date OData function like so: StartDate/any(s: date(s) eq 2019-10-15) but I get an error 'Function 'date' is not supported'.

Is there any way to get dates without using the time part?


Solution

  • The use of date literals in filters in Azure Search will no longer be supported starting in api-version 2019-05-06-Preview. This was an "accidental feature" that we never intended to support. The reason you don't get any results is because the implicit conversion from Edm.Date to Edm.DateTimeOffset assumes a time of midnight UTC, whereas the dates in your index are 6 PM UTC.

    We recommend explicitly providing the time and offset (or Z for UTC) in filters to avoid this problem.

    If you want Azure Search to natively support fields and filters of type Edm.Date, please vote for this User Voice suggestion.