# Date Range Query Java

**URL:** <https://discuss.elastic.co/t/date-range-query-java/45610>\
**Category:** Elasticsearch\
**Created:** [March 28, 2016, 4:33pm UTC](https://discuss.elastic.co/t/date-range-query-java/45610 "2016-03-28T16:33:06Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![ajmariella](https://avatars.discourse-cdn.com/v4/letter/a/9dc877/32.png) [@ajmariella](https://discuss.elastic.co/u/ajmariella)\
**Post date:** [March 28, 2016, 4:33pm UTC](https://discuss.elastic.co/t/date-range-query-java/45610/1 "2016-03-28T16:33:06Z")

</div>

I'm trying to create a range query in ES.  
Here's my Java example:  
QueryBuilder qb = QueryBuilders.rangeQUery("updateTime")  
.from(fromDate)  
.to(toDate)

WHen I print it out, it looks like this:  
{  
"range" : {  
"updateTime" : {  
"from" : "2016-03-18-T15:00:00.000Z",  
"to" : "2016-03-28-T15:00:00.000Z",  
"include\_lower" : true,  
"include\_upper" : true  
}  
}  
}  
I get all shards failed error.  
Then I get a Null Pointer when trying to access the response.  
I know there is data for those dates..

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [March 28, 2016, 5:49pm UTC](https://discuss.elastic.co/t/date-range-query-java/45610/2 "2016-03-28T17:49:53Z")

</div>

Full stacktrace?

---

<div class="post-metadata">

**Author:** ![ajmariella](https://avatars.discourse-cdn.com/v4/letter/a/9dc877/32.png) [@ajmariella](https://discuss.elastic.co/u/ajmariella)\
**Post date:** [March 28, 2016, 6:09pm UTC](https://discuss.elastic.co/t/date-range-query-java/45610/3 "2016-03-28T18:09:15Z")

</div>

Looks like I'm getting a NumberFormatException fo{for input string: "2016-03-18T15:00:00.000Z"  
at org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.onFirstPhaseResult(TransportSearchTypeAction.java:228)  
org.elasticsearch.action.seasrch.type.TransportSearchTypeAction$BaseAsyncAction$1.onFailure(TransportSearchTypeAction.java:174)  
at org.elasticsearch.action.ActionListenerResponseHandler.handleException(ActionListenerResponseHandlerjava:46)

I can't copy the whole error because I'm working on a unconnected system.

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [March 28, 2016, 7:07pm UTC](https://discuss.elastic.co/t/date-range-query-java/45610/4 "2016-03-28T19:07:27Z")

</div>

But you said Null Pointer, right?

This is not the same error here.

For what is worth, the string you passed is definitely not a number.

---

<div class="post-metadata">

**Author:** ![ajmariella](https://avatars.discourse-cdn.com/v4/letter/a/9dc877/32.png) [@ajmariella](https://discuss.elastic.co/u/ajmariella)\
**Post date:** [March 29, 2016, 10:28am UTC](https://discuss.elastic.co/t/date-range-query-java/45610/5 "2016-03-29T10:28:36Z")

</div>

Yes, I was wrong on the error. What value can I use for a range query .from and .to if I want to do a range query using dates ?

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [March 29, 2016, 11:04am UTC](https://discuss.elastic.co/t/date-range-query-java/45610/6 "2016-03-29T11:04:14Z")

</div>

If you reproduce with a full script your error, then we can probably help you.

Here I have no idea about the mapping, the data...

I suppose that `updateTime` is not a date???

But unsure

---

<div class="post-metadata">

**Author:** ![ajmariella](https://avatars.discourse-cdn.com/v4/letter/a/9dc877/32.png) [@ajmariella](https://discuss.elastic.co/u/ajmariella)\
**Post date:** [March 29, 2016, 11:15am UTC](https://discuss.elastic.co/t/date-range-query-java/45610/7 "2016-03-29T11:15:29Z")

</div>

updateTime is a date. I tried to setup the range query using:  
QueryBuilder qb = QueryBuilders.rangeQuery("updateTime"  
.gte("now - 2d/d")  
.lte("now/d")

But I still get a NumberFormatException  
How can I use "now" as a date format ?  
What format should I use in the RangeQuery ?

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [March 29, 2016, 11:36am UTC](https://discuss.elastic.co/t/date-range-query-java/45610/8 "2016-03-29T11:36:10Z")

</div>

Works well on my end:

```auto
DELETE test
PUT test/doc/1
{
  "updateTime": "2016-03-18T15:00:00"
}
GET test/_search
{
  "query": {
    "range": {
      "updateTime": {
        "gte": "2016-03-18T15:00:00.000Z",
        "lte": "2017-01-01T00:00:00.000Z"
      }
    }
  }
}

```

Gives:

```auto
{
  "took": 8,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 1,
    "max_score": 1,
    "hits": [
      {
        "_index": "test",
        "_type": "doc",
        "_id": "1",
        "_score": 1,
        "_source": {
          "updateTime": "2016-03-18T15:00:00"
        }
      }
    ]
  }
}

```

---

<div class="post-metadata">

**Author:** ![ajmariella](https://avatars.discourse-cdn.com/v4/letter/a/9dc877/32.png) [@ajmariella](https://discuss.elastic.co/u/ajmariella)\
**Post date:** [March 29, 2016, 11:39am UTC](https://discuss.elastic.co/t/date-range-query-java/45610/9 "2016-03-29T11:39:19Z")

</div>

I'm doing this in Java. How do I setup the rangeQuery using dates in java ?

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [March 29, 2016, 12:12pm UTC](https://discuss.elastic.co/t/date-range-query-java/45610/10 "2016-03-29T12:12:40Z")

</div>

As you did. It looks correct to me (but the spaces).

I told you already. I think your mapping is incorrect.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 5, 2017, 11:04pm UTC](https://discuss.elastic.co/t/date-range-query-java/45610/11 "2017-07-05T23:04:25Z")

</div>


