diff --git a/docs/reference/esql/functions/description/to_date_nanos.asciidoc b/docs/reference/esql/functions/description/to_date_nanos.asciidoc
new file mode 100644
index 0000000000000..955c19b43a12f
--- /dev/null
+++ b/docs/reference/esql/functions/description/to_date_nanos.asciidoc
@@ -0,0 +1,7 @@
+// This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
+
+*Description*
+
+Converts an input to a nanosecond-resolution date value (aka date_nanos).
+
+NOTE: The range for date nanos is 1970-01-01T00:00:00.000000000Z to 2262-04-11T23:47:16.854775807Z, attepting to convertvalues outside of that range will result in null with a warning.. Additionally, integers cannot be converted into date nanos, as the range of integer nanoseconds only covers about 2 seconds after epoch.
diff --git a/docs/reference/esql/functions/kibana/definition/to_date_nanos.json b/docs/reference/esql/functions/kibana/definition/to_date_nanos.json
new file mode 100644
index 0000000000000..210b9608f9eff
--- /dev/null
+++ b/docs/reference/esql/functions/kibana/definition/to_date_nanos.json
@@ -0,0 +1,95 @@
+{
+ "comment" : "This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.",
+ "type" : "eval",
+ "name" : "to_date_nanos",
+ "description" : "Converts an input to a nanosecond-resolution date value (aka date_nanos).",
+ "note" : "The range for date nanos is 1970-01-01T00:00:00.000000000Z to 2262-04-11T23:47:16.854775807Z, attepting to convertvalues outside of that range will result in null with a warning.. Additionally, integers cannot be converted into date nanos, as the range of integer nanoseconds only covers about 2 seconds after epoch.",
+ "signatures" : [
+ {
+ "params" : [
+ {
+ "name" : "field",
+ "type" : "date",
+ "optional" : false,
+ "description" : "Input value. The input can be a single- or multi-valued column or an expression."
+ }
+ ],
+ "variadic" : false,
+ "returnType" : "date_nanos"
+ },
+ {
+ "params" : [
+ {
+ "name" : "field",
+ "type" : "date_nanos",
+ "optional" : false,
+ "description" : "Input value. The input can be a single- or multi-valued column or an expression."
+ }
+ ],
+ "variadic" : false,
+ "returnType" : "date_nanos"
+ },
+ {
+ "params" : [
+ {
+ "name" : "field",
+ "type" : "double",
+ "optional" : false,
+ "description" : "Input value. The input can be a single- or multi-valued column or an expression."
+ }
+ ],
+ "variadic" : false,
+ "returnType" : "date_nanos"
+ },
+ {
+ "params" : [
+ {
+ "name" : "field",
+ "type" : "keyword",
+ "optional" : false,
+ "description" : "Input value. The input can be a single- or multi-valued column or an expression."
+ }
+ ],
+ "variadic" : false,
+ "returnType" : "date_nanos"
+ },
+ {
+ "params" : [
+ {
+ "name" : "field",
+ "type" : "long",
+ "optional" : false,
+ "description" : "Input value. The input can be a single- or multi-valued column or an expression."
+ }
+ ],
+ "variadic" : false,
+ "returnType" : "date_nanos"
+ },
+ {
+ "params" : [
+ {
+ "name" : "field",
+ "type" : "text",
+ "optional" : false,
+ "description" : "Input value. The input can be a single- or multi-valued column or an expression."
+ }
+ ],
+ "variadic" : false,
+ "returnType" : "date_nanos"
+ },
+ {
+ "params" : [
+ {
+ "name" : "field",
+ "type" : "unsigned_long",
+ "optional" : false,
+ "description" : "Input value. The input can be a single- or multi-valued column or an expression."
+ }
+ ],
+ "variadic" : false,
+ "returnType" : "date_nanos"
+ }
+ ],
+ "preview" : false,
+ "snapshot_only" : false
+}
diff --git a/docs/reference/esql/functions/kibana/docs/to_date_nanos.md b/docs/reference/esql/functions/kibana/docs/to_date_nanos.md
new file mode 100644
index 0000000000000..1bce8d4fca832
--- /dev/null
+++ b/docs/reference/esql/functions/kibana/docs/to_date_nanos.md
@@ -0,0 +1,8 @@
+
+
+### TO_DATE_NANOS
+Converts an input to a nanosecond-resolution date value (aka date_nanos).
+
+Note: The range for date nanos is 1970-01-01T00:00:00.000000000Z to 2262-04-11T23:47:16.854775807Z, attepting to convertvalues outside of that range will result in null with a warning.. Additionally, integers cannot be converted into date nanos, as the range of integer nanoseconds only covers about 2 seconds after epoch.
diff --git a/docs/reference/esql/functions/layout/to_date_nanos.asciidoc b/docs/reference/esql/functions/layout/to_date_nanos.asciidoc
new file mode 100644
index 0000000000000..2dfd13dac7e20
--- /dev/null
+++ b/docs/reference/esql/functions/layout/to_date_nanos.asciidoc
@@ -0,0 +1,14 @@
+// This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
+
+[discrete]
+[[esql-to_date_nanos]]
+=== `TO_DATE_NANOS`
+
+*Syntax*
+
+[.text-center]
+image::esql/functions/signature/to_date_nanos.svg[Embedded,opts=inline]
+
+include::../parameters/to_date_nanos.asciidoc[]
+include::../description/to_date_nanos.asciidoc[]
+include::../types/to_date_nanos.asciidoc[]
diff --git a/docs/reference/esql/functions/parameters/to_date_nanos.asciidoc b/docs/reference/esql/functions/parameters/to_date_nanos.asciidoc
new file mode 100644
index 0000000000000..224f474fa64e3
--- /dev/null
+++ b/docs/reference/esql/functions/parameters/to_date_nanos.asciidoc
@@ -0,0 +1,6 @@
+// This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
+
+*Parameters*
+
+`field`::
+Input value. The input can be a single- or multi-valued column or an expression.
diff --git a/docs/reference/esql/functions/signature/to_date_nanos.svg b/docs/reference/esql/functions/signature/to_date_nanos.svg
new file mode 100644
index 0000000000000..0b24b56429588
--- /dev/null
+++ b/docs/reference/esql/functions/signature/to_date_nanos.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/reference/esql/functions/type-conversion-functions.asciidoc b/docs/reference/esql/functions/type-conversion-functions.asciidoc
index 9ac9ec290c07b..bd70c2789dfa2 100644
--- a/docs/reference/esql/functions/type-conversion-functions.asciidoc
+++ b/docs/reference/esql/functions/type-conversion-functions.asciidoc
@@ -18,6 +18,7 @@
* <>
* experimental:[] <>
* <>
+* <>
* <>
* <>
* <>
@@ -37,6 +38,7 @@ include::layout/to_cartesianpoint.asciidoc[]
include::layout/to_cartesianshape.asciidoc[]
include::layout/to_dateperiod.asciidoc[]
include::layout/to_datetime.asciidoc[]
+include::layout/to_date_nanos.asciidoc[]
include::layout/to_degrees.asciidoc[]
include::layout/to_double.asciidoc[]
include::layout/to_geopoint.asciidoc[]
diff --git a/docs/reference/esql/functions/types/to_date_nanos.asciidoc b/docs/reference/esql/functions/types/to_date_nanos.asciidoc
new file mode 100644
index 0000000000000..dec6833d14b08
--- /dev/null
+++ b/docs/reference/esql/functions/types/to_date_nanos.asciidoc
@@ -0,0 +1,15 @@
+// This is generated by ESQL's AbstractFunctionTestCase. Do no edit it. See ../README.md for how to regenerate it.
+
+*Supported types*
+
+[%header.monospaced.styled,format=dsv,separator=|]
+|===
+field | result
+date | date_nanos
+date_nanos | date_nanos
+double | date_nanos
+keyword | date_nanos
+long | date_nanos
+text | date_nanos
+unsigned_long | date_nanos
+|===
diff --git a/muted-tests.yml b/muted-tests.yml
index ec90b894f19dd..bacd2487670a3 100644
--- a/muted-tests.yml
+++ b/muted-tests.yml
@@ -165,8 +165,6 @@ tests:
- class: org.elasticsearch.xpack.ml.integration.MlJobIT
method: testGetJobs_GivenSingleJob
issue: https://github.com/elastic/elasticsearch/issues/113655
-- class: org.elasticsearch.xpack.esql.expression.function.scalar.convert.ToDateNanosTests
- issue: https://github.com/elastic/elasticsearch/issues/113661
- class: org.elasticsearch.search.retriever.RankDocsRetrieverBuilderTests
method: testRewrite
issue: https://github.com/elastic/elasticsearch/issues/114467
diff --git a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/expression/function/scalar/convert/ToDateNanos.java b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/expression/function/scalar/convert/ToDateNanos.java
index 8c4375b424cdc..837475fca7e74 100644
--- a/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/expression/function/scalar/convert/ToDateNanos.java
+++ b/x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/expression/function/scalar/convert/ToDateNanos.java
@@ -63,9 +63,9 @@ public class ToDateNanos extends AbstractConvertFunction {
@FunctionInfo(
returnType = "date_nanos",
description = "Converts an input to a nanosecond-resolution date value (aka date_nanos).",
- note = "The range for date nanos is 1970-01-01T00:00:00.000000000Z to 2262-04-11T23:47:16.854775807Z. Additionally, integers "
- + "cannot be converted into date nanos, as the range of integer nanoseconds only covers about 2 seconds after epoch.",
- preview = true
+ note = "The range for date nanos is 1970-01-01T00:00:00.000000000Z to 2262-04-11T23:47:16.854775807Z, attepting to convert"
+ + "values outside of that range will result in null with a warning.. Additionally, integers cannot be converted into date "
+ + "nanos, as the range of integer nanoseconds only covers about 2 seconds after epoch."
)
public ToDateNanos(
Source source,