# Date format incorrect results

**URL:** <https://discuss.elastic.co/t/date-format-incorrect-results/40643>\
**Category:** Elasticsearch\
**Created:** [February 1, 2016, 3:25pm UTC](https://discuss.elastic.co/t/date-format-incorrect-results/40643 "2016-02-01T15:25:56Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Hilal](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/hilal/32/7684_2.png) [@Hilal](https://discuss.elastic.co/u/Hilal)\
**Post date:** [February 1, 2016, 3:25pm UTC](https://discuss.elastic.co/t/date-format-incorrect-results/40643/1 "2016-02-01T15:25:56Z")

</div>

hi,

I want to do date filter and search.

My mapping :

$myTypeMapping['properties']['mydate']['type']='date';  
$myTypeMapping['properties']['mydate']['index']='analyzed';  
$myTypeMapping['properties']['mydate']['format']='YYYY-MM-dd HH:mm:ss';

My filter:

unset($filter\_mydate);  
if(isset($\_GET['mydate\_gte'])){  
$filter\_mydate['range']['mydate']['gte']=$\_GET['mydate\_gte'];  
$filter\_mydate['range']['mydate']['lte']=$\_GET['mydate\_lte'];  
}

if(is\_array($filter\_mydate)){  
$searchParams['body']['query']=$filter\_mydate;  
}

My search :

[http://10.0.2.15:8080/filter.php?mydategte=2015-01-0100:00:00&mydatelte=2016-12-0113:00:59](http://10.0.2.15:8080/filter.php?mydategte=2015-01-0100:00:00&mydatelte=2016-12-0113:00:59)

unfortunately my results incorrect. How it can be Date format ?

---

<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:** [February 1, 2016, 3:48pm UTC](https://discuss.elastic.co/t/date-format-incorrect-results/40643/2 "2016-02-01T15:48:02Z")

</div>

Sounds like super similar to what you asked at [Elasticsearch Range Filter](https://discuss.elastic.co/t/elasticsearch-range-filter/40495)

Can you reproduce your problem with a [full curl script?](https://www.elastic.co/help/)

---

<div class="post-metadata">

**Author:** ![Hilal](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/hilal/32/7684_2.png) [@Hilal](https://discuss.elastic.co/u/Hilal)\
**Post date:** [February 1, 2016, 3:57pm UTC](https://discuss.elastic.co/t/date-format-incorrect-results/40643/3 "2016-02-01T15:57:12Z")

</div>

yes It dosen't work true.  
I realized My date results is true but my time results false

---

<div class="post-metadata">

**Author:** ![Hilal](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/hilal/32/7684_2.png) [@Hilal](https://discuss.elastic.co/u/Hilal)\
**Post date:** [February 3, 2016, 1:02pm UTC](https://discuss.elastic.co/t/date-format-incorrect-results/40643/4 "2016-02-03T13:02:53Z")

</div>

please help me.

I want to do date data filter and search:  
My date data:  
2017-07-03 14:00:00

my search 1:

[http://10.0.2.15:8080/filtreleme.php?date\_try&date\_gte=2017/01/01](http://10.0.2.15:8080/filtreleme.php?date_try&date_gte=2017/01/01) 00:00:00&date\_lte=2018/01/01 23:59:59

my result 1: 0 (result is false. Actually it should be 2017-07-03 14:00:00)

My search 2:

[http://10.0.2.15:8080/filtreleme.php?date\_try&date\_gte=2016/01/01](http://10.0.2.15:8080/filtreleme.php?date_try&date_gte=2016/01/01) 00:00:00&date\_lte=2017/01/01 23:59:59

my result 2: 2017-07-03 14:00:00 ( It is false Actually it should be 0)  
So It give accurate results when I type the date one year earlier.

My date mapping :

$myTypeMapping['properties']['date']['type']='date';  
$myTypeMapping['properties']['date']['index']='not\_analyzed';  
$myTypeMapping['properties']['date']['format']='yyyy/MM/dd HH:mm:ss';

My filter:

unset($filter\_date);  
if(isset($\_GET['date\_try'])){  
$filter\_date['range']['date']['gte']=$\_GET['date\_gte'];  
$filter\_date['range']['date']['lte']=$\_GET['date\_lte'];  
}  
if(is\_array($filter\_date)){  
$searchParams['body']['query']['filtered']['filter']=$filter\_date;  
}

---

<div class="post-metadata">

**Author:** ![Hilal](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/hilal/32/7684_2.png) [@Hilal](https://discuss.elastic.co/u/Hilal)\
**Post date:** [February 3, 2016, 1:07pm UTC](https://discuss.elastic.co/t/date-format-incorrect-results/40643/5 "2016-02-03T13:07:41Z")

</div>

also when I just write year ıt works true. But when I write year with month, day and hour It works false.

I think date format is wrong. I couldn't date format. I didn't understand date format documents in elasticsearch website.

---

<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:** [February 3, 2016, 1:25pm UTC](https://discuss.elastic.co/t/date-format-incorrect-results/40643/6 "2016-02-03T13:25:07Z")

</div>

May be an issue with your PHP code?

Any chance you could test and write [a pure script code](https://www.elastic.co/help/) (using curl or SENSE)?

---

<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:** [February 3, 2016, 1:26pm UTC](https://discuss.elastic.co/t/date-format-incorrect-results/40643/7 "2016-02-03T13:26:15Z")

</div>

> [@dadoonet](#):
>
> May be an issue with your PHP code?

I meant that `2017/01/01 23:59:59` is may be translated to `2017/01/01%2023:59:59`?

---

<div class="post-metadata">

**Author:** ![Hilal](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/hilal/32/7684_2.png) [@Hilal](https://discuss.elastic.co/u/Hilal)\
**Post date:** [February 3, 2016, 3:58pm UTC](https://discuss.elastic.co/t/date-format-incorrect-results/40643/8 "2016-02-03T15:58:26Z")

</div>

Thank you.

I tried but It is still the same.  
I only year when I questioned, It works true  
It dosen't work true when I questioned year with the day

I have to use php and elasticsearch

---

<div class="post-metadata">

**Author:** ![Hilal](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/hilal/32/7684_2.png) [@Hilal](https://discuss.elastic.co/u/Hilal)\
**Post date:** [February 5, 2016, 3:12pm UTC](https://discuss.elastic.co/t/date-format-incorrect-results/40643/9 "2016-02-05T15:12:32Z")

</div>

I can do query and filter between years but I can not between years with month, day, hour,minute and second  
Why is that? PLease help me.

Should I use strtotime() function for a solution?

---

<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:** [February 5, 2016, 3:34pm UTC](https://discuss.elastic.co/t/date-format-incorrect-results/40643/10 "2016-02-05T15:34:07Z")

</div>

I told you that you should try first with an example without using any client. So you make sure that:

1. you understand how elasticsearch works
2. where your error is coming from

So here is a full example which works:

```auto
DELETE index
PUT index
PUT index/doc/_mapping
{
  "properties": {
    "date": {
      "type": "date",
      "format": "yyyy-MM-dd HH:mm:ss"
    }
  }
}
PUT index/doc/1
{
  "date": "2016-12-01 13:00:59"
}
GET index/_search
{
  "query": {
    "range": {
      "date": {
        "gte": "2016-12-01 10:00:00",
        "lte": "2016-12-01 14:00:00"
      }
    }
  }
}

```

---

<div class="post-metadata">

**Author:** ![Hilal](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/hilal/32/7684_2.png) [@Hilal](https://discuss.elastic.co/u/Hilal)\
**Post date:** [February 5, 2016, 3:59pm UTC](https://discuss.elastic.co/t/date-format-incorrect-results/40643/11 "2016-02-05T15:59:34Z")

</div>

Thank you. I did it. But it didn't correct. The problem still continues I think the problem is related to php.  
I have to use php.

---

<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:** [February 5, 2016, 5:42pm UTC](https://discuss.elastic.co/t/date-format-incorrect-results/40643/12 "2016-02-05T17:42:59Z")

</div>

What is your mapping? I mean what is the result of `GET _mapping`? Don't copy any PHP code here as we can't trust this is exactly what elasticsearch is getting.

Are you using the official PHP client? If so may be @polyfractal can help.

> I think the problem is related to php.

Yes. I do think the same.

So fix the problem on your end and make sure you are sending expected dates to elasticsearch.

Note that by default, date format is like `2016-12-01T14:00:00`.

---

<div class="post-metadata">

**Author:** ![Hilal](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/hilal/32/7684_2.png) [@Hilal](https://discuss.elastic.co/u/Hilal)\
**Post date:** [February 10, 2016, 7:24am UTC](https://discuss.elastic.co/t/date-format-incorrect-results/40643/13 "2016-02-10T07:24:06Z")

</div>

I am using official PHP client. I corrected the date format but my problem continues. It dosen't return results format year/month/day/hours/minute/second.

The following query works correctly:  
`http://10.0.2.15:8080/filter.php?date_try&date_gte=2016&date_lte=2017`

However the following query does not work correctly:

`http://10.0.2.15:8080/filter.php?date_try&date_gte=2016-01-01T00:00:00&date_lte=2017-01-01T23:59:59`

result: 2017-07-03 14:00:00 (this is wrong)

You know my mapping:

```
$myTypeMapping['properties']['date']['type']='date';
$myTypeMapping['properties']['date']['index']='not_analyzed';
$myTypeMapping['properties']['date']['format']='yyyy-MM-dd"T"HH:mm:ss';
```

---

<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:** [February 10, 2016, 8:48am UTC](https://discuss.elastic.co/t/date-format-incorrect-results/40643/14 "2016-02-10T08:48:19Z")

</div>

If you need help, can you please answer to the questions we are asking?

We can't help without knowing exactly what you are doing.

Simple remark: a search engine does not behave as a database search.

---

<div class="post-metadata">

**Author:** ![Hilal](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/hilal/32/7684_2.png) [@Hilal](https://discuss.elastic.co/u/Hilal)\
**Post date:** [February 10, 2016, 9:13am UTC](https://discuss.elastic.co/t/date-format-incorrect-results/40643/15 "2016-02-10T09:13:56Z")

</div>

OK.

we are publishing thousands tender on the website every day. We are using MySQL and PHP in now. However it is not enough for us. So we decided to use Elasticsearch. We finished the indexing job.We need to question the date of all tenders. For example, customers must find tenders on the website that they want to the date range.

Is it not possible at this elasticsearch technology?

---

<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:** [February 10, 2016, 11:04am UTC](https://discuss.elastic.co/t/date-format-incorrect-results/40643/16 "2016-02-10T11:04:05Z")

</div>

I gave you a fully working example.

---

<div class="post-metadata">

**Author:** ![Hilal](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/hilal/32/7684_2.png) [@Hilal](https://discuss.elastic.co/u/Hilal)\
**Post date:** [February 11, 2016, 3:36pm UTC](https://discuss.elastic.co/t/date-format-incorrect-results/40643/17 "2016-02-11T15:36:52Z")

</div>

thank you for your example. I tried with sense editor .  
**My error:**

> {  
> "error": {  
> "root\_cause": [  
> {  
> "type": "merge\_mapping\_exception",  
> "reason": "Merge failed with failures {[mapper [ihale\_tarihi] of different type, current\_type [string], merged\_type [date]]}"  
> }  
> ],  
> "type": "merge\_mapping\_exception",  
> "reason": "Merge failed with failures {[mapper [ihale\_tarihi] of different type, current\_type [string], merged\_type [date]]}"  
> },  
> "status": 400  
> }

---

<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:** [February 11, 2016, 4:30pm UTC](https://discuss.elastic.co/t/date-format-incorrect-results/40643/18 "2016-02-11T16:30:09Z")

</div>

You probably did not execute the full script I gave.

```auto
DELETE index

```

is important here.

---

<div class="post-metadata">

**Author:** ![Hilal](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/hilal/32/7684_2.png) [@Hilal](https://discuss.elastic.co/u/Hilal)\
**Post date:** [February 12, 2016, 3:00pm UTC](https://discuss.elastic.co/t/date-format-incorrect-results/40643/19 "2016-02-12T15:00:05Z")

</div>

Of course I deleted. But it dosen't work.  
I am not sure but I think problem is indexing. We can not index mysql data. We would not be able to transfer data within the elastic. We continue working on the problem.

---

<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:** [February 12, 2016, 4:30pm UTC](https://discuss.elastic.co/t/date-format-incorrect-results/40643/20 "2016-02-12T16:30:26Z")

</div>

Can you test the script I gave please? No more. No less.

Then if it works, it proves that elasticsearch works well for such a case. (Which is the case on my laptop).  
It would mean that your injection process is wrong.

Again, it's impossible to help if you don't give all the information about what you are doing and how.

[Next page](https://discuss.elastic.co/t/date-format-incorrect-results/40643.md?page=2)
