# Cannot convert date to string by mutate

**URL:** <https://discuss.elastic.co/t/cannot-convert-date-to-string-by-mutate/298022>\
**Category:** Logstash\
**Created:** [February 23, 2022, 11:38am UTC](https://discuss.elastic.co/t/cannot-convert-date-to-string-by-mutate/298022 "2022-02-23T11:38:26Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![ivanhoe-dev](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ivanhoe-dev/32/89965_2.png) [@ivanhoe-dev](https://discuss.elastic.co/u/ivanhoe-dev)\
**Post date:** [February 23, 2022, 11:38am UTC](https://discuss.elastic.co/t/cannot-convert-date-to-string-by-mutate/298022/1 "2022-02-23T11:38:26Z")

</div>

I want to force my search\_varchar\_1 data type as string, but it always auto detect my data and parse as date type. Is there something I missed?

My config

```auto
filter {
	split {}
	csv {
		separator => ","
		skip_header => "true"
		columns => ["log_no","log_dtm","operation_cd","correlation_id","no_hash","search_varchar_1","search_varchar_2","search_varchar_3","search_varchar_4","search_varchar_5","search_varchar_6","search_varchar_7","search_varchar_8","search_varchar_9","search_varchar_10","search_int_1","search_int_2","search_int_3","search_int_4","search_int_5","search_int_6","search_int_7","search_int_8","search_int_9","search_int_10","birth_month","birth_year","login_flag"]
		convert => {
			"search_int_1" => "integer"
			"search_int_2" => "integer"
			"search_int_3" => "integer"
			"search_int_4" => "integer"
			"search_int_5" => "integer"
			"search_int_6" => "integer"
			"search_int_7" => "integer"
			"search_int_8" => "integer"
			"search_int_9" => "integer"
			"search_int_10" => "integer"
			"birth_year" => "integer"
			"birth_month" => "integer"
		}
	}
	mutate {
		convert => {
			"search_varchar_1" => "string"
		}
	}
}

```

My data

```auto
log_no,log_dtm,operation_cd,correlation_id,no_hash,search_varchar_1,search_varchar_2,search_varchar_3,search_varchar_4,search_varchar_5,search_varchar_6,search_varchar_7,search_varchar_8,search_varchar_9,search_varchar_10,search_int_1,search_int_2,search_int_3,search_int_4,search_int_5,search_int_6,search_int_7,search_int_8,search_int_9,search_int_10,birth_month,birth_year,login_flag
1,24-NOV-20 11.35.18.445000000 PM,operation,17,,E,,,,,,,,,,,,,,,,,,,,,,N
4,24-NOV-20 11.35.18.445000000 PM,operation,17,,E,,,,,,,,,,,,,,,,,,,,,,N
5,24-NOV-20 11.35.18.445000000 PM,operation,17,,E,,,,,,,,,,,,,,,,,,,,,,N
6,24-NOV-20 11.35.18.445000000 PM,operation,17,,E,,,,,,,,,,,,,,,,,,,,,,N
3,24-NOV-20 11.35.18.445000000 PM,operation,17,,2022-02-01T00:00:18.224+08:00,,,,,,,,,,,,,,,,,,,,,,N
7,24-NOV-20 11.35.18.445000000 PM,operation,17,,2022-02-01,,,,,,,,,,,,,,,,,,,,,,N

```

---

<div class="post-metadata">

**Author:** ![Tomo\_M](https://avatars.discourse-cdn.com/v4/letter/t/848f3c/32.png) [@Tomo\_M](https://discuss.elastic.co/u/Tomo_M)\
**Post date:** [February 23, 2022, 12:44pm UTC](https://discuss.elastic.co/t/cannot-convert-date-to-string-by-mutate/298022/2 "2022-02-23T12:44:49Z")

</div>

At which phase "detect as date type" happen? Indexing to Elasticsearch?

---

<div class="post-metadata">

**Author:** ![Badger](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/badger/32/25190_2.png) [@Badger](https://discuss.elastic.co/u/Badger)\
**Post date:** [February 23, 2022, 2:38pm UTC](https://discuss.elastic.co/t/cannot-convert-date-to-string-by-mutate/298022/3 "2022-02-23T14:38:45Z")

</div>

> [@ivanhoe-dev](#):
>
> I want to force my search\_varchar\_1 data type as string, but it always auto detect my data and parse as date type.

In elasticsearch, if dynamic mapping and [date detection](https://www.elastic.co/guide/en/elasticsearch/reference/current/dynamic-field-mapping.html#date-detection) are enabled then if it looks like a date it will get mapped as a date.

---

<div class="post-metadata">

**Author:** ![ivanhoe-dev](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ivanhoe-dev/32/89965_2.png) [@ivanhoe-dev](https://discuss.elastic.co/u/ivanhoe-dev)\
**Post date:** [February 23, 2022, 3:09pm UTC](https://discuss.elastic.co/t/cannot-convert-date-to-string-by-mutate/298022/4 "2022-02-23T15:09:40Z")

</div>

Thank you, is there any way to force the field to be mapped as string even it contains date format? Because I am only a consumer of my company's Elasticsearch service, which I don't have access control, thank you.

---

<div class="post-metadata">

**Author:** ![Badger](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/badger/32/25190_2.png) [@Badger](https://discuss.elastic.co/u/Badger)\
**Post date:** [February 23, 2022, 3:25pm UTC](https://discuss.elastic.co/t/cannot-convert-date-to-string-by-mutate/298022/5 "2022-02-23T15:25:15Z")

</div>

Elasticsearch does the mapping. You can either disable dynamic mapping or use an [index template](https://www.elastic.co/guide/en/elasticsearch/reference/current/index-templates.html) to set the mapping.

---

<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 23, 2022, 3:25pm UTC](https://discuss.elastic.co/t/cannot-convert-date-to-string-by-mutate/298022/6 "2022-03-23T15:25:45Z")

</div>

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