﻿---
title: ES|QL DATE_EXTRACT function
description: 
url: https://www.elastic.co/elastic/docs-builder/docs/2979/reference/query-languages/esql/functions-operators/date-time-functions/date_extract
products:
  - Elasticsearch
---

# ES|QL DATE_EXTRACT function
## Syntax

![Embedded](https://www.elastic.co/elastic/docs-builder/docs/2979/reference/query-languages/esql/images/functions/date_extract.svg)


## Parameters

<definitions>
  <definition term="datePart">
    Part of the date to extract.  Can be: `aligned_day_of_week_in_month`, `aligned_day_of_week_in_year`, `aligned_week_of_month`, `aligned_week_of_year`, `ampm_of_day`, `clock_hour_of_ampm`, `clock_hour_of_day`, `day_of_month`, `day_of_week`, `day_of_year`, `epoch_day`, `era`, `hour_of_ampm`, `hour_of_day`, `instant_seconds`, `micro_of_day`, `micro_of_second`, `milli_of_day`, `milli_of_second`, `minute_of_day`, `minute_of_hour`, `month_of_year`, `nano_of_day`, `nano_of_second`, `offset_seconds`, `proleptic_month`, `second_of_day`, `second_of_minute`, `year`, or `year_of_era`. Refer to [java.time.temporal.ChronoField](https://docs.oracle.com/javase/8/docs/api/java/time/temporal/ChronoField.html) for a description of these values.  If `null`, the function returns `null`.
  </definition>
  <definition term="date">
    Date expression. If `null`, the function returns `null`.
  </definition>
</definitions>


## Description

Extracts parts of a date, like year, month, day, hour.

## Supported types


| datePart | date       | result |
|----------|------------|--------|
| keyword  | date       | long   |
| keyword  | date_nanos | long   |
| text     | date       | long   |
| text     | date_nanos | long   |


## Examples

```esql
ROW date = DATE_PARSE("yyyy-MM-dd", "2022-05-06")
| EVAL year = DATE_EXTRACT("year", date)
```


| date:date                | year:long |
|--------------------------|-----------|
| 2022-05-06T00:00:00.000Z | 2022      |

Find all events that occurred outside of business hours (before 9 AM or after 5PM), on any given date:
```esql
FROM sample_data
| WHERE DATE_EXTRACT("hour_of_day", @timestamp) < 9
    AND DATE_EXTRACT("hour_of_day", @timestamp) >= 17
```


| @timestamp:date | client_ip:ip | event_duration:long | message:keyword |
|-----------------|--------------|---------------------|-----------------|