# Substracting two datetime fields

**URL:** https://discuss.elastic.co/t/substracting-two-datetime-fields/135619
**Category:** Elasticsearch
**Created:** [June 13, 2018, 3:52am UTC](https://discuss.elastic.co/t/substracting-two-datetime-fields/135619 "2018-06-13T03:52:30Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![Illidan](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/illidan/32/54264_2.png) [@Illidan](https://discuss.elastic.co/u/Illidan)
#### Post date: [June 13, 2018, 3:52am UTC](https://discuss.elastic.co/t/substracting-two-datetime-fields/135619/1 "2018-06-13T03:52:30Z")

</div>

This is a field in my document:

"date\_found": "2018-04-23T22:17:46.6387919+03:00"

My goal is to calculate some value from difference between two datetime fields (e.g. dt1 - dt2)

I running a script to perform such operation:

updateDescriptor.Script(a =\> a.Inline("ctx.\_source.lifetime = ctx.\_source.date\_deleted - ctx.\_source.date\_found"));

This operation results with the following error:

"Cannot apply [-] operation to types [java.lang.String] and [java.lang.String]."

How it is advised to perform operations on datetime fields?

---

<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: [June 13, 2018, 4:21am UTC](https://discuss.elastic.co/t/substracting-two-datetime-fields/135619/2 "2018-06-13T04:21:52Z")

</div>

I don't remember by heart the syntax but I believe you need first to transform the date object to ms since epoch and then you can do a substraction.

Have a look at what are the available methods for a date type field.

---

<div class="post-metadata">

### Author: ![Illidan](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/illidan/32/54264_2.png) [@Illidan](https://discuss.elastic.co/u/Illidan)
#### Post date: [June 13, 2018, 5:32am UTC](https://discuss.elastic.co/t/substracting-two-datetime-fields/135619/3 "2018-06-13T05:32:54Z")

</div>

Can I perform such conversion as part of script execution? Where I can find list of available methods you are mentioning?

---

<div class="post-metadata">

### Author: ![roshni](https://avatars.discourse-cdn.com/v4/letter/r/ce7236/32.png) [@roshni](https://discuss.elastic.co/u/roshni)
#### Post date: [June 13, 2018, 5:40am UTC](https://discuss.elastic.co/t/substracting-two-datetime-fields/135619/4 "2018-06-13T05:40:10Z")

</div>

You can refer to the below link -  
[https://www.elastic.co/guide/en/elasticsearch/reference/6.1/mapping-date-format.html](https://www.elastic.co/guide/en/elasticsearch/reference/6.1/mapping-date-format.html)

---

<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: [June 13, 2018, 6:05am UTC](https://discuss.elastic.co/t/substracting-two-datetime-fields/135619/5 "2018-06-13T06:05:59Z")

</div>

On a mobile now but a quick search and I found

> <https://stackoverflow.com/questions/45864201/elasticsearch-painless-manipulate-date>

HTH

---

<div class="post-metadata">

### Author: ![Illidan](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/illidan/32/54264_2.png) [@Illidan](https://discuss.elastic.co/u/Illidan)
#### Post date: [June 13, 2018, 6:20am UTC](https://discuss.elastic.co/t/substracting-two-datetime-fields/135619/6 "2018-06-13T06:20:22Z")

</div>

On mobile now but from quick view it looks like what I need.

Thanks man

---

<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 11, 2018, 6:26am UTC](https://discuss.elastic.co/t/substracting-two-datetime-fields/135619/7 "2018-07-11T06:26:49Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
