# How to get the date object substring in logstash filter

**URL:** <https://discuss.elastic.co/t/how-to-get-the-date-object-substring-in-logstash-filter/49760>\
**Category:** Logstash\
**Created:** [May 11, 2016, 12:11pm UTC](https://discuss.elastic.co/t/how-to-get-the-date-object-substring-in-logstash-filter/49760 "2016-05-11T12:11:05Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![baneshbanna](https://avatars.discourse-cdn.com/v4/letter/b/5e9695/32.png) [@baneshbanna](https://discuss.elastic.co/u/baneshbanna)\
**Post date:** [May 11, 2016, 12:11pm UTC](https://discuss.elastic.co/t/how-to-get-the-date-object-substring-in-logstash-filter/49760/1 "2016-05-11T12:11:05Z")

</div>

In Logstash filter i want to use yyyy-mm .  
I should get yyyy-mm from date object using substring function.  
How to get the substring of date object in logstash filter  
Thanks in advance.

---

<div class="post-metadata">

**Author:** ![fbaligand](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/fbaligand/32/5657_2.png) [@fbaligand](https://discuss.elastic.co/u/fbaligand)\
**Post date:** [May 11, 2016, 4:28pm UTC](https://discuss.elastic.co/t/how-to-get-the-date-object-substring-in-logstash-filter/49760/2 "2016-05-11T16:28:41Z")

</div>

I invite you to try this logstash configuration :

```
filter {
  grok {
    match => { "@timestamp" => "(?<month>[0-9]{4}\-[0-9]{2})"}
  }
}

```

This will store "yyyy-mm" into "month" field

---

<div class="post-metadata">

**Author:** ![baneshbanna](https://avatars.discourse-cdn.com/v4/letter/b/5e9695/32.png) [@baneshbanna](https://discuss.elastic.co/u/baneshbanna)\
**Post date:** [May 13, 2016, 6:51am UTC](https://discuss.elastic.co/t/how-to-get-the-date-object-substring-in-logstash-filter/49760/3 "2016-05-13T06:51:25Z")

</div>

Thank you very much.  
It is working.

---

<div class="post-metadata">

**Author:** ![baneshbanna](https://avatars.discourse-cdn.com/v4/letter/b/5e9695/32.png) [@baneshbanna](https://discuss.elastic.co/u/baneshbanna)\
**Post date:** [May 13, 2016, 6:54am UTC](https://discuss.elastic.co/t/how-to-get-the-date-object-substring-in-logstash-filter/49760/4 "2016-05-13T06:54:48Z")

</div>

Please suggest how to send NULL date value to elasticsearch using logstash.  
Now null date value going as "null" string.  
But it should be NULL date.  
Thank in advance.

---

<div class="post-metadata">

**Author:** ![fbaligand](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/fbaligand/32/5657_2.png) [@fbaligand](https://discuss.elastic.co/u/fbaligand)\
**Post date:** [May 13, 2016, 7:39am UTC](https://discuss.elastic.co/t/how-to-get-the-date-object-substring-in-logstash-filter/49760/5 "2016-05-13T07:39:51Z")

</div>

I think the only way to that is :

```
ruby {
  code => "event['@timestamp'] = nil"
}
```

---

<div class="post-metadata">

**Author:** ![baneshbanna](https://avatars.discourse-cdn.com/v4/letter/b/5e9695/32.png) [@baneshbanna](https://discuss.elastic.co/u/baneshbanna)\
**Post date:** [May 14, 2016, 6:54am UTC](https://discuss.elastic.co/t/how-to-get-the-date-object-substring-in-logstash-filter/49760/6 "2016-05-14T06:54:29Z")

</div>

Thank you very much.Its working.

---

<div class="post-metadata">

**Author:** ![baneshbanna](https://avatars.discourse-cdn.com/v4/letter/b/5e9695/32.png) [@baneshbanna](https://discuss.elastic.co/u/baneshbanna)\
**Post date:** [May 14, 2016, 7:24am UTC](https://discuss.elastic.co/t/how-to-get-the-date-object-substring-in-logstash-filter/49760/7 "2016-05-14T07:24:40Z")

</div>

in csv filter quote\_char default value is """ .  
In my file fields are not enclosed with "(doublequote).  
But one of the field having "(doublequote).

Logstash failed with csv parse failure exception.  
logstash confisidering "(doublequote) as default value and failing with csv parse failure exception.

Please suggest how to avoid this.  
Thank in advance.

---

<div class="post-metadata">

**Author:** ![fbaligand](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/fbaligand/32/5657_2.png) [@fbaligand](https://discuss.elastic.co/u/fbaligand)\
**Post date:** [May 14, 2016, 8:12am UTC](https://discuss.elastic.co/t/how-to-get-the-date-object-substring-in-logstash-filter/49760/8 "2016-05-14T08:12:47Z")

</div>

To avoid csv filter interprets `"` character, I invite you to set a very special char as "quote\_char" option.  
For example :

```
csv {
  quote_char => "`"
}
```

---

<div class="post-metadata">

**Author:** ![baneshbanna](https://avatars.discourse-cdn.com/v4/letter/b/5e9695/32.png) [@baneshbanna](https://discuss.elastic.co/u/baneshbanna)\
**Post date:** [May 14, 2016, 6:29pm UTC](https://discuss.elastic.co/t/how-to-get-the-date-object-substring-in-logstash-filter/49760/9 "2016-05-14T18:29:09Z")

</div>

Above quote used in the mysql queries to escape mysql predefined variables. same query written to log. if i use that quote also csv failure exception displayed.  
Please suggest another.

---

<div class="post-metadata">

**Author:** ![fbaligand](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/fbaligand/32/5657_2.png) [@fbaligand](https://discuss.elastic.co/u/fbaligand)\
**Post date:** [May 14, 2016, 7:35pm UTC](https://discuss.elastic.co/t/how-to-get-the-date-object-substring-in-logstash-filter/49760/10 "2016-05-14T19:35:38Z")

</div>

Ok.  
Maybe you could use another special char like $ or ; or ¥ 🙂

If you want another solution, tell me.

---

<div class="post-metadata">

**Author:** ![baneshbanna](https://avatars.discourse-cdn.com/v4/letter/b/5e9695/32.png) [@baneshbanna](https://discuss.elastic.co/u/baneshbanna)\
**Post date:** [May 15, 2016, 4:18pm UTC](https://discuss.elastic.co/t/how-to-get-the-date-object-substring-in-logstash-filter/49760/11 "2016-05-15T16:18:00Z")

</div>

Please tell me another solution.

---

<div class="post-metadata">

**Author:** ![fbaligand](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/fbaligand/32/5657_2.png) [@fbaligand](https://discuss.elastic.co/u/fbaligand)\
**Post date:** [May 16, 2016, 5:35pm UTC](https://discuss.elastic.co/t/how-to-get-the-date-object-substring-in-logstash-filter/49760/12 "2016-05-16T17:35:25Z")

</div>

OK, so the other solution aims to transform your log line to a standard csv line.  
These are the logstash filters to set before csv filter :

```
mutate {
  gsub => ['message', '"', '""']
}
mutate {
  gsub => ['message', ',', '","']
}
mutate {
  replace => { 'message' => '"%{message}"' }
}
```

---

<div class="post-metadata">

**Author:** ![fbaligand](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/fbaligand/32/5657_2.png) [@fbaligand](https://discuss.elastic.co/u/fbaligand)\
**Post date:** [May 18, 2016, 6:49am UTC](https://discuss.elastic.co/t/how-to-get-the-date-object-substring-in-logstash-filter/49760/14 "2016-05-18T06:49:13Z")

</div>

It is a really different subject, so I invite you to open a new topic for that.

---

<div class="post-metadata">

**Author:** ![fbaligand](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/fbaligand/32/5657_2.png) [@fbaligand](https://discuss.elastic.co/u/fbaligand)\
**Post date:** [June 13, 2016, 7:31am UTC](https://discuss.elastic.co/t/how-to-get-the-date-object-substring-in-logstash-filter/49760/16 "2016-06-13T07:31:53Z")

</div>

One more time, that's a different subject, so I invite you to open a new topic.

---

<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 6, 2017, 4:53am UTC](https://discuss.elastic.co/t/how-to-get-the-date-object-substring-in-logstash-filter/49760/17 "2017-07-06T04:53:25Z")

</div>


