elasticsearch/docs/reference/esql/functions/description
Mark Tozzi 122e728820
[ESQL] Add TO_DATE_NANOS conversion function (#112150)
Resolves #111842

This adds a conversion function that yields DATE_NANOS. Mostly this is straight forward.

It is worth noting that when converting a millisecond date into a nanosecond date, the conversion function truncates it to 0 nanoseconds (i.e. first nanosecond of that millisecond). This is, of course, a bit of an assumption, but I don't have a better assumption we can make. I'd thought about adding a second, optional, parameter to control this behavior, but it's important that TO_DATE_NANOS extend AbstractConvertFunction, which itself extends UnaryScalarFunction, so that it will work correctly with union types. Also, it's unlikely the user will have any better guess than we do for filling in the nanoseconds.

Making that assumption does, however, create some weirdness. Consider two comparisons:

TO_DATETIME("2023-03-23T12:15:03.360103847") == TO_DATETIME("2023-03-23T12:15:03.360") will return true while TO_DATE_NANOS("2023-03-23T12:15:03.360103847") == TO_DATE_NANOS("2023-03-23T12:15:03.360") will return false. This is akin to casting between longs and doubles, where things may compare equal in one type that are not equal in the other. This seems fine, and I can't think of a better way to do it, but it's worth being aware of.

---------

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
2024-09-26 12:03:01 -04:00
..
abs.asciidoc ESQL: Generate a few more docs (#106577) 2024-03-21 10:51:35 -04:00
acos.asciidoc ESQL: Generate a few more docs (#106577) 2024-03-21 10:51:35 -04:00
asin.asciidoc ESQL: Generate a few more docs (#106577) 2024-03-21 10:51:35 -04:00
atan.asciidoc ESQL: Generate a few more docs (#106577) 2024-03-21 10:51:35 -04:00
atan2.asciidoc ESQL: Generate a few more docs (#106577) 2024-03-21 10:51:35 -04:00
avg.asciidoc ESQL: AVG aggregation tests and ignore complex surrogates (#110579) 2024-07-09 12:01:46 +02:00
bucket.asciidoc ESQL: extend BUCKET with spans. Turn it into a grouping function (#107272) 2024-04-16 12:57:18 +02:00
case.asciidoc [ES|QL] Add/Modify annotations for spatial and conditional functions for better doc generation (#107722) 2024-05-10 14:49:25 -04:00
categorize.asciidoc ESQL - generate docs for snapshot functions (#113080) 2024-09-19 07:46:43 +02:00
cbrt.asciidoc ESQL: CBRT function (#108574) 2024-05-15 16:50:15 +02:00
ceil.asciidoc ESQL: Generate docs for ceil (#106616) 2024-03-21 13:01:15 -04:00
cidr_match.asciidoc [ES|QL] Add/Modify annotations for operators for better doc generation (#108220) 2024-05-03 22:59:51 -04:00
coalesce.asciidoc ESQL: Generate a few more docs (#106577) 2024-03-21 10:51:35 -04:00
concat.asciidoc ESQL: Generate a few more docs (#106577) 2024-03-21 10:51:35 -04:00
cos.asciidoc ESQL: Generate docs for the trig functions (#106891) 2024-03-29 12:24:31 -04:00
cosh.asciidoc Update docs from code 2024-09-09 11:28:31 -04:00
count.asciidoc ESQL: Add COUNT and COUNT_DISTINCT aggregation tests (#111409) 2024-07-30 03:07:15 +10:00
count_distinct.asciidoc ESQL: Add COUNT and COUNT_DISTINCT aggregation tests (#111409) 2024-07-30 03:07:15 +10:00
date_diff.asciidoc Add docs clarifications on DATE_DIFF args (#108301) 2024-05-07 12:59:01 +02:00
date_extract.asciidoc ESQL: Generate a few more docs (#106577) 2024-03-21 10:51:35 -04:00
date_format.asciidoc ES|QL: Improve support for TEXT fields in functions (#106810) 2024-03-27 08:47:09 -04:00
date_parse.asciidoc [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
date_trunc.asciidoc ES|QL: Add unit tests and docs for DATE_TRUNC() (#107145) 2024-04-09 10:41:34 +02:00
e.asciidoc ESQL: Improve tests and docs for some functions (#107331) 2024-04-11 12:41:56 -04:00
ends_with.asciidoc [ES|QL] Add/Modify annotations for operators for better doc generation (#108220) 2024-05-03 22:59:51 -04:00
exp.asciidoc Add the EXP ES|QL function (#110879) 2024-07-16 16:36:01 +02:00
floor.asciidoc ESQL: Improve tests and docs for some functions (#107331) 2024-04-11 12:41:56 -04:00
from_base64.asciidoc [ES|QL] Base64 decoding and encoding functions (#107390) 2024-04-15 18:39:26 -04:00
greatest.asciidoc [ES|QL] Add/Modify annotations for spatial and conditional functions for better doc generation (#107722) 2024-05-10 14:49:25 -04:00
ip_prefix.asciidoc ESQL: Add ip_prefix function (#109070) 2024-05-29 10:23:45 -04:00
least.asciidoc [ES|QL] Add/Modify annotations for spatial and conditional functions for better doc generation (#107722) 2024-05-10 14:49:25 -04:00
left.asciidoc ESQL: Generate a few more docs (#106577) 2024-03-21 10:51:35 -04:00
length.asciidoc ESQL: Generate a few more docs (#106577) 2024-03-21 10:51:35 -04:00
locate.asciidoc [ES|QL] Document return value for locate in case substring is not found (#112202) 2024-09-03 12:46:20 +02:00
log.asciidoc ESQL: Fixup docs for LOG and LOG10 (#106963) 2024-04-03 09:46:32 -04:00
log10.asciidoc ESQL: Fixup docs for LOG and LOG10 (#106963) 2024-04-03 09:46:32 -04:00
ltrim.asciidoc ESQL: Generate a few more docs (#106577) 2024-03-21 10:51:35 -04:00
max.asciidoc ESQL: Add boolean support to Max and Min aggs (#110527) 2024-07-10 23:10:32 +10:00
median.asciidoc ESQL: Added Median and MedianAbsoluteDeviation aggregations tests and kibana docs (#111231) 2024-07-26 22:11:01 +10:00
median_absolute_deviation.asciidoc ESQL: Added Median and MedianAbsoluteDeviation aggregations tests and kibana docs (#111231) 2024-07-26 22:11:01 +10:00
min.asciidoc ESQL: Add boolean support to Max and Min aggs (#110527) 2024-07-10 23:10:32 +10:00
mv_append.asciidoc ES|QL: add MV_APPEND function (#107001) 2024-06-05 03:42:29 +10:00
mv_avg.asciidoc ESQL: Generate a few more docs (#106577) 2024-03-21 10:51:35 -04:00
mv_concat.asciidoc mv functions (#107839) 2024-05-01 10:47:22 -04:00
mv_count.asciidoc mv functions (#107839) 2024-05-01 10:47:22 -04:00
mv_dedupe.asciidoc mv functions (#107839) 2024-05-01 10:47:22 -04:00
mv_first.asciidoc mv functions (#107839) 2024-05-01 10:47:22 -04:00
mv_last.asciidoc mv functions (#107839) 2024-05-01 10:47:22 -04:00
mv_max.asciidoc mv functions (#107839) 2024-05-01 10:47:22 -04:00
mv_median.asciidoc ESQL: Generate a few more docs (#106577) 2024-03-21 10:51:35 -04:00
mv_median_absolute_deviation.asciidoc ESQL: mv_median_absolute_deviation function (#112055) 2024-09-09 10:04:25 +02:00
mv_min.asciidoc mv functions (#107839) 2024-05-01 10:47:22 -04:00
mv_percentile.asciidoc ESQL: Added mv_percentile function (#111749) 2024-08-20 15:29:19 +02:00
mv_pseries_weighted_sum.asciidoc ESQL: Add MV_PSERIES_WEIGHTED_SUM for score calculations used by security solution (#109017) 2024-07-31 12:08:28 +02:00
mv_slice.asciidoc ESQL: Generate a few more docs (#106577) 2024-03-21 10:51:35 -04:00
mv_sort.asciidoc ESQL: Generate a few more docs (#106577) 2024-03-21 10:51:35 -04:00
mv_sum.asciidoc ESQL: Generate a few more docs (#106577) 2024-03-21 10:51:35 -04:00
mv_zip.asciidoc ESQL: Generate a few more docs (#106577) 2024-03-21 10:51:35 -04:00
now.asciidoc ES|QL: Add unit tests for now() function (#108498) 2024-05-10 14:28:19 +02:00
percentile.asciidoc Added Percentile aggregation tests and Kibana docs (#111050) 2024-07-19 14:28:11 +02:00
pi.asciidoc [ESQL] Add in the autogenerated docs for a bunch of functions (#107633) 2024-04-18 14:09:30 -04:00
pow.asciidoc ESQL: Improve tests and docs for some functions (#107331) 2024-04-11 12:41:56 -04:00
qstr.asciidoc ESQL QSTR function (#112590) 2024-09-19 16:34:42 +02:00
repeat.asciidoc ESQL: add REPEAT string function (#109220) 2024-06-04 16:32:43 -05:00
replace.asciidoc [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
right.asciidoc [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
round.asciidoc [ESQL] Add in the autogenerated docs for a bunch of functions (#107633) 2024-04-18 14:09:30 -04:00
rtrim.asciidoc ESQL: Generate a few more docs (#106577) 2024-03-21 10:51:35 -04:00
signum.asciidoc Add ES|QL signum function (#106866) 2024-04-04 09:48:35 +02:00
sin.asciidoc Update docs from code 2024-09-09 11:28:31 -04:00
sinh.asciidoc Update docs from code 2024-09-09 11:28:31 -04:00
space.asciidoc [ESQL] Add SPACE function (#112350) 2024-09-09 21:41:35 +10:00
split.asciidoc ESQL: Generate a few more docs (#106577) 2024-03-21 10:51:35 -04:00
sqrt.asciidoc ESQL: CBRT function (#108574) 2024-05-15 16:50:15 +02:00
st_centroid_agg.asciidoc ESQL: SpatialCentroid aggregation tests and docs (#111236) 2024-07-26 10:41:18 +02:00
st_contains.asciidoc [ES|QL] Add/Modify annotations for spatial and conditional functions for better doc generation (#107722) 2024-05-10 14:49:25 -04:00
st_disjoint.asciidoc [ES|QL] Add/Modify annotations for spatial and conditional functions for better doc generation (#107722) 2024-05-10 14:49:25 -04:00
st_distance.asciidoc ES|QL ST_DISTANCE Function (#108764) 2024-06-21 11:59:44 +02:00
st_intersects.asciidoc [ES|QL] Add/Modify annotations for spatial and conditional functions for better doc generation (#107722) 2024-05-10 14:49:25 -04:00
st_within.asciidoc [ES|QL] Add/Modify annotations for spatial and conditional functions for better doc generation (#107722) 2024-05-10 14:49:25 -04:00
st_x.asciidoc [ES|QL] Add/Modify annotations for spatial and conditional functions for better doc generation (#107722) 2024-05-10 14:49:25 -04:00
st_y.asciidoc [ES|QL] Add/Modify annotations for spatial and conditional functions for better doc generation (#107722) 2024-05-10 14:49:25 -04:00
starts_with.asciidoc [ES|QL] Add/Modify annotations for operators for better doc generation (#108220) 2024-05-03 22:59:51 -04:00
substring.asciidoc ESQL: All descriptions are a full sentence (#110791) 2024-07-11 16:44:15 -04:00
sum.asciidoc Added Sum aggregation tests and docs (#110984) 2024-07-22 21:43:58 +10:00
tan.asciidoc Update docs from code 2024-09-09 11:28:31 -04:00
tanh.asciidoc Update docs from code 2024-09-09 11:28:31 -04:00
tau.asciidoc [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
to_base64.asciidoc [ES|QL] Base64 decoding and encoding functions (#107390) 2024-04-15 18:39:26 -04:00
to_boolean.asciidoc [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
to_cartesianpoint.asciidoc [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
to_cartesianshape.asciidoc [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
to_date_nanos.asciidoc [ESQL] Add TO_DATE_NANOS conversion function (#112150) 2024-09-26 12:03:01 -04:00
to_dateperiod.asciidoc [ES|QL] explicit cast a string literal to date_period and time_duration in arithmetic operations (#109193) 2024-09-09 14:56:43 -04:00
to_datetime.asciidoc ESQL: Document date instead of datetime (#111985) 2024-08-21 01:59:13 +10:00
to_degrees.asciidoc [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
to_double.asciidoc [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
to_geopoint.asciidoc [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
to_geoshape.asciidoc [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
to_integer.asciidoc [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
to_ip.asciidoc ESQL: Generate a few more docs (#106577) 2024-03-21 10:51:35 -04:00
to_long.asciidoc [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
to_lower.asciidoc ESQL: Generate a few more docs (#106577) 2024-03-21 10:51:35 -04:00
to_radians.asciidoc [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
to_string.asciidoc [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
to_timeduration.asciidoc [ES|QL] explicit cast a string literal to date_period and time_duration in arithmetic operations (#109193) 2024-09-09 14:56:43 -04:00
to_unsigned_long.asciidoc [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
to_upper.asciidoc ESQL: Generate a few more docs (#106577) 2024-03-21 10:51:35 -04:00
to_version.asciidoc ESQL: Generate a few more docs (#106577) 2024-03-21 10:51:35 -04:00
top.asciidoc ESQL: Renamed TopList to Top (#110347) 2024-07-02 03:52:24 +10:00
trim.asciidoc ESQL: Generate a few more docs (#106577) 2024-03-21 10:51:35 -04:00
values.asciidoc ESQL: Add COUNT and COUNT_DISTINCT aggregation tests (#111409) 2024-07-30 03:07:15 +10:00
weighted_avg.asciidoc ESQL: WEIGHTED_AVG aggregation tests and docs (#111449) 2024-07-31 00:42:23 +10:00