# Extraction Functions

This section contains extraction functions that extract `unit` from an input expression. The table below contains the supported units for the given extraction functions.

|   Unit  |                            Description                            |
| :-----: | :---------------------------------------------------------------: |
|   YEAR  |                           extracts year                           |
| QUARTER |                          extracts quarter                         |
|  MONTH  |                           extracts month                          |
|   WEEK  |                     extracts week of the year                     |
|   DAY   |                            extracts day                           |
|   DOY   |                    extract the day of the year                    |
|   DOW   | extract ISO day of the week (ranges from 1 (Monday) to 7 (Sunday) |
|   HOUR  |                           extracts hour                           |
|  MINUTE |                          extracts minute                          |
|  SECOND |                          extracts second                          |
|  EPOCH  |                        extracts epoch time                        |

#### <mark style="color:purple;">EXTRACT(</mark>  unit FROM \<datetime expr>  <mark style="color:purple;">)</mark>

Returns the value of specified `unit` from the given date-time expression.

```sql
> select extract(MINUTE FROM cast('2022-01-02 12:27:11' as timestamp))
27
```

#### <mark style="color:purple;">DATEPART(</mark>  unit,  \<expr>  <mark style="color:purple;">)</mark>

Returns the specified unit of the given date/timestamp expression.

```sql
> select current_date, datepart('day', current_date) as day_val;
----------------------------------------
| current_date        |day_val         |
----------------------------------------
| 2023-01-06 00:00:00 |6               |
----------------------------------------
```

#### <mark style="color:purple;">WEEK(</mark> \<date\_or\_timestamp\_expr> <mark style="color:purple;">)</mark>

Returns the week number of the year.

<pre class="language-sql"><code class="lang-sql"><strong>> select week(FROM_UNIXTIME_WITHUNIT(1673263327000, 'milliseconds'))
</strong><strong>2
</strong></code></pre>

#### <mark style="color:purple;">YEAR(</mark> \<date\_or\_timestamp\_expr> <mark style="color:purple;">)</mark>

Returns the year for a  date or timestamp.

```sql
> select week(FROM_UNIXTIME_WITHUNIT(1673263327000, 'milliseconds'))
2
```

#### <mark style="color:purple;">MONTH(</mark>  \<date\_or\_timestamp\_expr>  <mark style="color:purple;">)</mark>

Returns the month for a date or timestamp.

```sql
> select month(date('2002-11-14'));
11
```

#### <mark style="color:purple;">DAYS(</mark>  \<date\_or\_timestamp\_expr>  <mark style="color:purple;">)</mark>

Returns the day of the month for a date or timestamp.

```sql
> select days(to_timestamp('2023-04-18 10:30:00'));
18
```

```sql
> select days(to_date('2023-04-12'));
12
```

#### <mark style="color:purple;">LAST\_DAY(</mark>  \<date\_or\_timestamp\_expr>  <mark style="color:purple;">)</mark>

Return the last day of the month for a date or timestamp.

```sql
> select last_day(cast('2022-01-11' as date));
2022-01-31
```

#### <mark style="color:purple;">DAYNAME(</mark>  \<date\_or\_timestamp\_expr>  <mark style="color:purple;">)</mark>

Returns the three-letter day-of-week name for a date or timestamp.

<pre class="language-sql"><code class="lang-sql">> select dayname(cast('2024-03-09' as date))
<strong>Sat
</strong>> select dayname(cast('2024-03-11' as timestamp))
Mon
</code></pre>

#### <mark style="color:purple;">HOUR(</mark>  \<date\_or\_timestamp\_expr>  <mark style="color:purple;">)</mark>

Returns the hour of the day from timestamp. The value ranges from `0` to `23`.

```sql
> select hour(to_timestamp('2023-04-18 10:30:00'));
10
```

#### <mark style="color:purple;">MINUTE(</mark>  \<date\_or\_timestamp\_expr>  <mark style="color:purple;">)</mark>

Returns the minute of the hour from timestamp. The value ranges from `0` to `59`.

```sql
> select minute(to_timestamp('2023-04-18 10:30:00'));
30
```

#### <mark style="color:purple;">SECOND(</mark>  \<date\_or\_timestamp\_expr>  <mark style="color:purple;">)</mark>

Returns the second of the minute from timestamp. The value ranges from `0` to `59`.

```sql
> select second(to_timestamp('2023-04-18 10:30:45'));
45
```

#### <mark style="color:purple;">DAYOFWEEKISO(</mark>  \<date\_or\_timestamp\_expr>  <mark style="color:purple;">)</mark>

Day (number) of the week uses ISO semantics 1 to 7

```sql
> select DAYOFWEEKISO(tstamp) AS "DAYOFWEEKISO" from ( SELECT '2016-01-02T23:39:20.123-07:00'::TIMESTAMP AS tstamp)
6
```

#### <mark style="color:purple;">WEEKOFYEAR(</mark>  \<date\_or\_timestamp\_expr>  <mark style="color:purple;">)</mark>

Week (number) of the year 1 to 53.

```sql
> SELECT WEEKOFYEAR(tstamp) AS "WEEK OF YEAR" FROM (SELECT  '2016-01-02T23:39:20.123-07:00'::TIMESTAMP AS tstamp)
53
```

#### <mark style="color:purple;">WEEKISO(</mark>  \<date\_or\_timestamp\_expr>  <mark style="color:purple;">)</mark>

WEEKISO is the same as WEEKOFYEAR, except uses ISO semantics 1 to 53.

<pre class="language-sql"><code class="lang-sql"><strong>> SELECT WEEKISO(tstamp) AS "WEEK ISO" FROM (SELECT  '2016-01-02T23:39:20.123-07:00'::TIMESTAMP AS tstamp)
</strong>53
</code></pre>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.e6data.com/product-documentation/sql-command-reference/date-time-functions/extraction-functions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
