# Elastic pipeline calculate value for field

**URL:** https://discuss.elastic.co/t/elastic-pipeline-calculate-value-for-field/283752
**Category:** Elasticsearch
**Tags:** ingest-pipeline
**Created:** [September 9, 2021, 8:15am UTC](https://discuss.elastic.co/t/elastic-pipeline-calculate-value-for-field/283752 "2021-09-09T08:15:25Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![111452](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/111452/32/79499_2.png) [@111452](https://discuss.elastic.co/u/111452)
#### Post date: [September 9, 2021, 8:15am UTC](https://discuss.elastic.co/t/elastic-pipeline-calculate-value-for-field/283752/1 "2021-09-09T08:15:25Z")

</div>

I'm trying to calculate the time value inside elastic pipeline and set this value for field. I need something like this :  
curl -X PUT "localhost:9200/\_ingest/pipeline/time-pipeline?pretty" -H 'Content-Type: application/json' -d'  
{  
"description" : "My optional pipeline description",  
"processors" : [  
{  
"set" : {  
"description" : "My optional processor description",  
"field": "end\_time",  
"value":"script": {  
"source": "doc['@timestamp'].value - 30s",  
}  
,  
},

```
}

```

]  
}  
'  
Does anyone know how to do it?

---

<div class="post-metadata">

### Author: ![spinscale](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/spinscale/32/25011_2.png) [@spinscale](https://discuss.elastic.co/u/spinscale)
#### Post date: [September 13, 2021, 3:16pm UTC](https://discuss.elastic.co/t/elastic-pipeline-calculate-value-for-field/283752/2 "2021-09-13T15:16:14Z")

</div>

The `@timestamp` value is just a string and needs to be converted to a `ZonedDateTime` object so you can substract a time unit from it.

```auto
POST _ingest/pipeline/_simulate
{
  "docs": [
    {
      "_source": {
        "@timestamp": "2021-09-13T12:34:56.789Z"
      }
    }
  ],
  "pipeline": {
    "processors": [
      {
        "script": {
          "source": "ctx.new = ZonedDateTime.parse(ctx['@timestamp']).minusSeconds(30);"
        }
      }
    ]
  }
}

```

---

<div class="post-metadata">

### Author: ![111452](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/111452/32/79499_2.png) [@111452](https://discuss.elastic.co/u/111452)
#### Post date: [September 15, 2021, 10:07am UTC](https://discuss.elastic.co/t/elastic-pipeline-calculate-value-for-field/283752/3 "2021-09-15T10:07:16Z")

</div>

> [@spinscale](#):
>
> ```auto
> {
> "docs": [
> {
> "_source": {
> "@timestamp": "2021-09-13T12:34:56.789Z"
> }
> }
> ],
> "pipeline": {
> "processors": [
> {
> "script": {
> "source": "ctx.new = ZonedDateTime.parse(ctx['@timestamp']).minusSeconds(30);"
> }
> }
> ]
> }
> }
> 
> ```

Thank you for your response! How can I do it if I want tp subtract seconds from current time, now pre-defined?

---

<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: [October 13, 2021, 10:07am UTC](https://discuss.elastic.co/t/elastic-pipeline-calculate-value-for-field/283752/4 "2021-10-13T10:07:19Z")

</div>

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