# \[7.5.1\] script field issue on @timestamp

**URL:** <https://discuss.elastic.co/t/7-5-1-script-field-issue-on-timestamp/217924>\
**Category:** Kibana\
**Created:** [February 5, 2020, 7:52am UTC](https://discuss.elastic.co/t/7-5-1-script-field-issue-on-timestamp/217924 "2020-02-05T07:52:06Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![dao](https://avatars.discourse-cdn.com/v4/letter/d/a6a055/32.png) [@dao](https://discuss.elastic.co/u/dao)\
**Post date:** [February 5, 2020, 7:52am UTC](https://discuss.elastic.co/t/7-5-1-script-field-issue-on-timestamp/217924/1 "2020-02-05T07:52:06Z")

</div>

Dear all,

I am trying to create a field in my index patter that will hold the date only. I was thinking about script fields.

I create a script field like this, as mentioned in [https://www.elastic.co/guide/en/elasticsearch/painless/7.5/painless-datetime.html](https://www.elastic.co/guide/en/elasticsearch/painless/7.5/painless-datetime.html)

```auto
String datetime = '1983-10-13T22:15:30Z';
ZonedDateTime zdt = ZonedDateTime.parse(datetime);
String ret = zdt.format(DateTimeFormatter.ISO_INSTANT);
return ret;

```

Works fine:

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/8/5/8564a1b5832d7be81b1cb7babafe18d618206fe4.png)

Now replacing the constant by the @timestamp:

```auto
String datetime = doc['@timestamp'].value;
ZonedDateTime zdt = ZonedDateTime.parse(datetime);
String ret = zdt.format(DateTimeFormatter.ISO_INSTANT);
return ret;

```

seems to fail:

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/5/1/518b81000a851edfa67e4a58483c983e85ba7699.png)

What's wrong?

---

<div class="post-metadata">

**Author:** ![ropc](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ropc/32/47022_2.png) [@ropc](https://discuss.elastic.co/u/ropc)\
**Post date:** [February 5, 2020, 8:35am UTC](https://discuss.elastic.co/t/7-5-1-script-field-issue-on-timestamp/217924/2 "2020-02-05T08:35:35Z")

</div>

Hi @dao - What is the type of `@timestamp` in your index?

---

<div class="post-metadata">

**Author:** ![dao](https://avatars.discourse-cdn.com/v4/letter/d/a6a055/32.png) [@dao](https://discuss.elastic.co/u/dao)\
**Post date:** [February 5, 2020, 8:53am UTC](https://discuss.elastic.co/t/7-5-1-script-field-issue-on-timestamp/217924/3 "2020-02-05T08:53:43Z")

</div>

Yes there are documents. Here is the same preview with @timestamp as additional field, and a very simple script that works

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/d/7/d70a961f56abb213fdfac46728867b328e17f8b8.png)

---

<div class="post-metadata">

**Author:** ![ropc](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ropc/32/47022_2.png) [@ropc](https://discuss.elastic.co/u/ropc)\
**Post date:** [February 5, 2020, 8:57am UTC](https://discuss.elastic.co/t/7-5-1-script-field-issue-on-timestamp/217924/4 "2020-02-05T08:57:48Z")

</div>

thanks @dao, can i confirm with you the type of `@timestamp`? is a `date` or `string` type?

---

<div class="post-metadata">

**Author:** ![dao](https://avatars.discourse-cdn.com/v4/letter/d/a6a055/32.png) [@dao](https://discuss.elastic.co/u/dao)\
**Post date:** [February 5, 2020, 8:59am UTC](https://discuss.elastic.co/t/7-5-1-script-field-issue-on-timestamp/217924/5 "2020-02-05T08:59:29Z")

</div>

`@timestamp` is a date:

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/8/2/8225859038aaaeee3105a5c672ea76f22278bc1c.png)

---

<div class="post-metadata">

**Author:** ![ropc](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ropc/32/47022_2.png) [@ropc](https://discuss.elastic.co/u/ropc)\
**Post date:** [February 5, 2020, 9:34am UTC](https://discuss.elastic.co/t/7-5-1-script-field-issue-on-timestamp/217924/6 "2020-02-05T09:34:49Z")

</div>

If it is a `date` type, I would expect some exceptions/errors related to type conversion / cast.

Using this script in my environment:

```auto
String datetime = doc['@timestamp'].value;
ZonedDateTime zdt = ZonedDateTime.parse(datetime);
String ret = zdt.format(DateTimeFormatter.ISO_INSTANT);
return ret;

```

throws a `class_cast_exception` with the following reason `Cannot cast org.elasticsearch.script.JodaCompatibleZonedDateTime to java.lang.String`

You can refer to our documentation that gives example on how to use a [Datetime Input From an Indexed Document](https://www.elastic.co/guide/en/elasticsearch/painless/7.5/painless-datetime.html#_datetime_input_from_an_indexed_document).

For example:

```auto
ZonedDateTime input = doc['@timestamp'].value;
String output = input.format(DateTimeFormatter.ISO_INSTANT);
return output;

```

I hope that helps.

---

<div class="post-metadata">

**Author:** ![dao](https://avatars.discourse-cdn.com/v4/letter/d/a6a055/32.png) [@dao](https://discuss.elastic.co/u/dao)\
**Post date:** [February 5, 2020, 2:16pm UTC](https://discuss.elastic.co/t/7-5-1-script-field-issue-on-timestamp/217924/7 "2020-02-05T14:16:34Z")

</div>

> [@ropc](#):
>
> ZonedDateTime input = doc['@timestamp'].value; String output = input.format(DateTimeFormatter.ISO\_INSTANT); return output;

Works fine, thank's

Did not find the that @timestamp is a ZonedDateTime in the documentation

---

<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:** [March 4, 2020, 2:16pm UTC](https://discuss.elastic.co/t/7-5-1-script-field-issue-on-timestamp/217924/8 "2020-03-04T14:16:39Z")

</div>

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