date_trunc.asciidoc 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. [discrete]
  2. [[esql-date_trunc]]
  3. === `DATE_TRUNC`
  4. *Syntax*
  5. [source,esql]
  6. ----
  7. DATE_TRUNC(interval, date)
  8. ----
  9. *Parameters*
  10. `interval`::
  11. Interval, expressed using the <<esql-timespan-literals,timespan literal
  12. syntax>>. If `null`, the function returns `null`.
  13. `date`::
  14. Date expression. If `null`, the function returns `null`.
  15. *Description*
  16. Rounds down a date to the closest interval.
  17. *Examples*
  18. [source.merge.styled,esql]
  19. ----
  20. include::{esql-specs}/date.csv-spec[tag=docsDateTrunc]
  21. ----
  22. [%header.monospaced.styled,format=dsv,separator=|]
  23. |===
  24. include::{esql-specs}/date.csv-spec[tag=docsDateTrunc-result]
  25. |===
  26. Combine `DATE_TRUNC` with <<esql-stats-by>> to create date histograms. For
  27. example, the number of hires per year:
  28. [source.merge.styled,esql]
  29. ----
  30. include::{esql-specs}/date.csv-spec[tag=docsDateTruncHistogram]
  31. ----
  32. [%header.monospaced.styled,format=dsv,separator=|]
  33. |===
  34. include::{esql-specs}/date.csv-spec[tag=docsDateTruncHistogram-result]
  35. |===
  36. Or an hourly error rate:
  37. [source.merge.styled,esql]
  38. ----
  39. include::{esql-specs}/conditional.csv-spec[tag=docsCaseHourlyErrorRate]
  40. ----
  41. [%header.monospaced.styled,format=dsv,separator=|]
  42. |===
  43. include::{esql-specs}/conditional.csv-spec[tag=docsCaseHourlyErrorRate-result]
  44. |===