# Static field - Calculate diffs between date fields with painless

**URL:** <https://discuss.elastic.co/t/static-field-calculate-diffs-between-date-fields-with-painless/281258>\
**Category:** Kibana\
**Tags:** painless\
**Created:** [August 12, 2021, 8:08pm UTC](https://discuss.elastic.co/t/static-field-calculate-diffs-between-date-fields-with-painless/281258 "2021-08-12T20:08:50Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![seadub](https://avatars.discourse-cdn.com/v4/letter/s/a88e57/32.png) [@seadub](https://discuss.elastic.co/u/seadub)\
**Post date:** [August 12, 2021, 8:08pm UTC](https://discuss.elastic.co/t/static-field-calculate-diffs-between-date-fields-with-painless/281258/1 "2021-08-12T20:08:50Z")

</div>

I'm attempting to add a new static field on an existing index, and having struggles getting data back in the preview to verify syntax.

I've confirmed that both fields are registered as "date" type in the index.

Here's the config I'm trying to use in the Scripted Field designer:  
Language: painless  
Type: number  
Format: default (number)  
Popularity: 1

Script:

```auto
return doc['end_time'].value - doc['start_time'].value;

```

Note - the version in use is 6.8.

---

<div class="post-metadata">

**Author:** ![aaron-nimocks](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/aaron-nimocks/32/73965_2.png) [@aaron-nimocks](https://discuss.elastic.co/u/aaron-nimocks)\
**Post date:** [August 13, 2021, 12:24am UTC](https://discuss.elastic.co/t/static-field-calculate-diffs-between-date-fields-with-painless/281258/2 "2021-08-13T00:24:24Z")

</div>

\*\*\* Just saw you are on version 6.8 and I am not sure it contains the library below on that far back of a version. But will leave the answer here since it applies to newer versions.

I would use the datetime API to do anything with dates. [Here](https://www.elastic.co/guide/en/elasticsearch/painless/current/painless-datetime.html#_datetime_difference_elapsed_time) is how do to do difference between dates.

Something like the below. I did miliseconds but you can choose a different [unit](https://www.elastic.co/guide/en/elasticsearch/painless/current/painless-api-reference-shared-java-time-temporal.html#painless-api-reference-shared-ChronoUnit).

```auto
ZonedDateTime end = ZonedDateTime.parse(doc['end_time'].value); 
ZonedDateTime start = ZonedDateTime.parse(doc['start_time'].value); 

long differenceInMillis = ChronoUnit.MILLIS.between(start, end);

return differenceInMillis;

```

---

<div class="post-metadata">

**Author:** ![seadub](https://avatars.discourse-cdn.com/v4/letter/s/a88e57/32.png) [@seadub](https://discuss.elastic.co/u/seadub)\
**Post date:** [August 13, 2021, 2:20pm UTC](https://discuss.elastic.co/t/static-field-calculate-diffs-between-date-fields-with-painless/281258/3 "2021-08-13T14:20:55Z")

</div>

> [@aaron-nimocks](#):
>
> ```auto
> ZonedDateTime end = ZonedDateTime.parse(doc['end_time'].value); 
> ZonedDateTime start = ZonedDateTime.parse(doc['start_time'].value); 
> 
> long differenceInMillis = ChronoUnit.MILLIS.between(zdt1, zdt2);
> 
> return differenceInMillis;
> 
> ```

Hi Aaron, thanks for your help.

I've just attempted that (with a slight adjustment on object names) and still am getting no results 😕

```auto
ZonedDateTime end = ZonedDateTime.parse(doc['end_time'].value); 
ZonedDateTime start = ZonedDateTime.parse(doc['start_time'].value); 

long differenceInMillis = ChronoUnit.MILLIS.between(start, end);

return differenceInMillis;

```

![image](https://us1.discourse-cdn.com/elastic/original/3X/0/9/0900cbb0434eff0273d7a29a4fbc64dbbfc1c185.png)

---

<div class="post-metadata">

**Author:** ![aaron-nimocks](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/aaron-nimocks/32/73965_2.png) [@aaron-nimocks](https://discuss.elastic.co/u/aaron-nimocks)\
**Post date:** [August 13, 2021, 3:14pm UTC](https://discuss.elastic.co/t/static-field-calculate-diffs-between-date-fields-with-painless/281258/4 "2021-08-13T15:14:55Z")

</div>

Did you see my note about versions? I don't think this will work on 6.8 and only newer versions.

---

<div class="post-metadata">

**Author:** ![seadub](https://avatars.discourse-cdn.com/v4/letter/s/a88e57/32.png) [@seadub](https://discuss.elastic.co/u/seadub)\
**Post date:** [August 13, 2021, 3:16pm UTC](https://discuss.elastic.co/t/static-field-calculate-diffs-between-date-fields-with-painless/281258/5 "2021-08-13T15:16:29Z")

</div>

I did see that, but I figured I'd give it a shot to capture the outcomes here. Thanks.

---

<div class="post-metadata">

**Author:** ![aaron-nimocks](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/aaron-nimocks/32/73965_2.png) [@aaron-nimocks](https://discuss.elastic.co/u/aaron-nimocks)\
**Post date:** [August 13, 2021, 3:23pm UTC](https://discuss.elastic.co/t/static-field-calculate-diffs-between-date-fields-with-painless/281258/6 "2021-08-13T15:23:23Z")

</div>

If I get some time I'll look up how to do it with that version.

---

<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:** [September 10, 2021, 3:24pm UTC](https://discuss.elastic.co/t/static-field-calculate-diffs-between-date-fields-with-painless/281258/7 "2021-09-10T15:24:13Z")

</div>

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