0

Background:

In Sharepoint Online, I'm using the Sharepoint REST API for query a few records based on its creation date (column Created).

I'm using the following variations of the REST query for get the items created in a range of time:

Variation #1 - has this datetime format: dd/MM/yyyy.

https:///_api/web/lists/GetByTitle('LIST_NAME')/items?&$select=Created&$filter=Created ge '2016-05-01T00:00:00Z' and Created le '2016-05-04T00:00:00Z'&$orderby=Created desc

Variation #2:

https:///_api/web/lists/GetByTitle('LIST_NAME')/items?&$select=Created&$filter=Created ge '01/05/2016 00:00' and Created le '04/05/2016 00:00'&$orderby=Created desc

Problem:

I'm waiting that those queries brings me the created data in that lapse of time, But none of them doesn't return any data.

Only when I add one more day to the datetime range, (i.e):

Variation #1 - has this datetime format: dd/MM/yyyy.

https:///_api/web/lists/GetByTitle('LIST_NAME')/items?&$select=Created&$filter=Created ge '2016-05-01T00:00:00Z' and Created le '2016-05-05T00:00:00Z'&$orderby=Created desc

Variation #2:

https:///_api/web/lists/GetByTitle('LIST_NAME')/items?&$select=Created&$filter=Created ge '01/05/2016 00:00' and Created le '05/05/2016 00:00'&$orderby=Created desc

The query returns me the data that should be queried using the datetime range in previous lines.

Here is the results:

2016-05-04T22:45:16Z

2016-05-04T22:36:29Z

2016-05-04T15:32:59Z

2016-05-04T15:07:24Z

This is a screenshot which shows the current data available:

enter image description here

I check these related questions, but none of them solves my current problem.

What could be the cause of this situation?

1 Answer 1

0

It seems that the problem was the formatting of string value as a valid SharePoint datetime.

wjervis's comment is right; I have to adapt my source code for get the selected date "hour and minutes" in my form and using the toISOString method.

So, if I need datetime with the ISO 8601 format; I use the following code:

// This is the date that I select in my form: "26/05/2016 17:00".

// I separate the previous string and create a new Date object:
var myDate = new Date(2016, 4, 26, 17, 0);

// With this line, I can use later in the query (using the SharePoint REST API).
var ISO_FormattedDate = myDate.toISOString();

The result is:

2016-05-26T22:00:00.000Z

And modifying the query as follows:

https://<SITE_NAME>/_api/web/lists/GetByTitle('LIST_NAME')/items?&$select=Created&$filter=Created ge '2016-05-26T22:00:00.000Z' and Created le '2016-05-26T23:00:00.000Z'&$orderby=Created desc

I finally could get the expected results.

1
  • 1
    SharePoint expects the date to be in ISO 8601 format Commented May 24, 2016 at 17:46

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.