elasticsearch/docs/reference/esql/functions/layout
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 [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04: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 [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
cos.asciidoc ESQL: Generate docs for the trig functions (#106891) 2024-03-29 12:24:31 -04:00
cosh.asciidoc ESQL: Generate docs for the trig functions (#106891) 2024-03-29 12:24: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 [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
date_extract.asciidoc [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
date_format.asciidoc [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -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 [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
locate.asciidoc [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04: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 [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
max.asciidoc ESQL: Fix Max doubles bug with negatives and add tests for Max and Min (#110586) 2024-07-09 21:05:00 +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: Fix Max doubles bug with negatives and add tests for Max and Min (#110586) 2024-07-09 21:05:00 +10:00
mv_append.asciidoc ES|QL: add MV_APPEND function (#107001) 2024-06-05 03:42:29 +10:00
mv_avg.asciidoc mv functions (#107839) 2024-05-01 10:47:22 -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 mv functions (#107839) 2024-05-01 10:47:22 -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 mv functions (#107839) 2024-05-01 10:47:22 -04:00
mv_sort.asciidoc mv functions (#107839) 2024-05-01 10:47:22 -04:00
mv_sum.asciidoc mv functions (#107839) 2024-05-01 10:47:22 -04:00
mv_zip.asciidoc mv functions (#107839) 2024-05-01 10:47:22 -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: Improve tests and docs for some functions (#107331) 2024-04-11 12:41:56 -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: Improve tests and docs for some functions (#107331) 2024-04-11 12:41:56 -04:00
rtrim.asciidoc [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
signum.asciidoc Add ES|QL signum function (#106866) 2024-04-04 09:48:35 +02:00
sin.asciidoc ESQL: Generate docs for the trig functions (#106891) 2024-03-29 12:24:31 -04:00
sinh.asciidoc ESQL: Generate docs for the trig functions (#106891) 2024-03-29 12:24:31 -04:00
space.asciidoc [ESQL] Add SPACE function (#112350) 2024-09-09 21:41:35 +10:00
split.asciidoc [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
sqrt.asciidoc [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
st_centroid_agg.asciidoc ESQL: SpatialCentroid aggregation tests and docs (#111236) 2024-07-26 10:41:18 +02:00
st_contains.asciidoc ESQL: Support ST_CONTAINS and ST_WITHIN (#106503) 2024-04-02 10:31:00 +02:00
st_disjoint.asciidoc ESQL: Support ST_DISJOINT (#107007) 2024-04-08 12:26:26 +02:00
st_distance.asciidoc ES|QL ST_DISTANCE Function (#108764) 2024-06-21 11:59:44 +02:00
st_intersects.asciidoc ESQL: Support ST_CONTAINS and ST_WITHIN (#106503) 2024-04-02 10:31:00 +02:00
st_within.asciidoc ESQL: Support ST_CONTAINS and ST_WITHIN (#106503) 2024-04-02 10:31:00 +02: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 [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
sum.asciidoc Added Sum aggregation tests and docs (#110984) 2024-07-22 21:43:58 +10:00
tan.asciidoc ESQL: Generate docs for the trig functions (#106891) 2024-03-29 12:24:31 -04:00
tanh.asciidoc ESQL: Generate docs for the trig functions (#106891) 2024-03-29 12:24: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 [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04: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 [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
to_long.asciidoc [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
to_lower.asciidoc [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -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 [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
to_version.asciidoc [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
top.asciidoc ESQL: Renamed TopList to Top (#110347) 2024-07-02 03:52:24 +10:00
trim.asciidoc [ES|QL] more doc generation via annotations (#107541) 2024-04-22 14:43:36 -04:00
values.asciidoc ES|QL: Add 'preview' information to functions docs for Kibana (#112792) 2024-09-12 16:49:55 +02:00
weighted_avg.asciidoc ESQL: WEIGHTED_AVG aggregation tests and docs (#111449) 2024-07-31 00:42:23 +10:00