[discrete] [[esql-date_trunc]] === `DATE_TRUNC` *Syntax* [source,esql] ---- DATE_TRUNC(interval, date) ---- *Parameters* `interval`:: Interval, expressed using the <>. If `null`, the function returns `null`. `date`:: Date expression. If `null`, the function returns `null`. *Description* Rounds down a date to the closest interval. *Examples* [source.merge.styled,esql] ---- include::{esql-specs}/date.csv-spec[tag=docsDateTrunc] ---- [%header.monospaced.styled,format=dsv,separator=|] |=== include::{esql-specs}/date.csv-spec[tag=docsDateTrunc-result] |=== Combine `DATE_TRUNC` with <> to create date histograms. For example, the number of hires per year: [source.merge.styled,esql] ---- include::{esql-specs}/date.csv-spec[tag=docsDateTruncHistogram] ---- [%header.monospaced.styled,format=dsv,separator=|] |=== include::{esql-specs}/date.csv-spec[tag=docsDateTruncHistogram-result] |=== Or an hourly error rate: [source.merge.styled,esql] ---- include::{esql-specs}/conditional.csv-spec[tag=docsCaseHourlyErrorRate] ---- [%header.monospaced.styled,format=dsv,separator=|] |=== include::{esql-specs}/conditional.csv-spec[tag=docsCaseHourlyErrorRate-result] |===