# last_day — DuckDB 1.3.2

Returns the last day of the month

- Reference: /products/haybarn/functions/releases/duckdb-1.3.2/last_day/
- JSON: /products/haybarn/functions/api/v1/duckdb-1.3.2/functions/last_day.json
- Snapshot ID: duckdb-1.3.2
- Engine: duckdb v1.3.2
- Source ID: 0b83e5d2f6
- Binary SHA-256: 9a2ae2a4d5dbd07a5b0cb30c502d65014825d34924c681eb3faa7647e7cd2b6f
- Captured: 2026-09-05T18:37:33.818Z
- Source: https://github.com/duckdb/duckdb/releases/tag/v1.3.2
- Loaded extensions: autocomplete, core_functions, icu, json, parquet, shell

## Interpretation

- Choose a snapshot matching the target engine and build. The default is captured from the published Haybarn WASM package used by the browser playground. Historical native snapshots are also available.
- Availability is an observation in the recorded build and extension profile, not a guarantee of support in every installation or in WASM.
- Types and descriptions are declarations from duckdb_functions(). Binding can specialize result types. Null means not supplied by the catalog; do not invent defaults, optionality, argument mode, or table output columns.
- Raw parameter arrays preserve catalog order for scalar/aggregate/macro functions. Raw table arguments are alphabetical. Use callingConvention for engine-confirmed positional order and named arguments; null modes are unrecorded. Named does not mean optional. Macro defaults and special named variadic behavior are not supplied by duckdb_functions().
- Catalog examples are source material and may require data or extensions. runnableExamples contains separately verified SQL for the pinned WASM package; sample-data adaptations and guide examples are labeled separately.
- Guide annotations and recipes are separate editorial content. The browser runner always uses Haybarn WASM 1.5.5-rc3, independently of the documentation snapshot.
- All URLs beginning with / are relative to the origin hosting this document. Exports require no JavaScript, cookies, API key, or browser engine.

## Overloads

### overload-6ffadfe49a6b2701

Kind: scalar. Parameter order: catalog-order.

```text
last_day(ts: DATE) → DATE
```

Link: /products/haybarn/functions/releases/duckdb-1.3.2/last_day/#overload-6ffadfe49a6b2701

| Argument | Catalog type | Calling mode |
| --- | --- | --- |
| ts | DATE | not recorded |

Declared return type: DATE. Variadic argument type: none declared.
Stability: CONSISTENT. Declared side effects: false.

### overload-2637a52348ea8e38

Kind: scalar. Parameter order: catalog-order.

```text
last_day(ts: TIMESTAMP) → DATE
```

Link: /products/haybarn/functions/releases/duckdb-1.3.2/last_day/#overload-2637a52348ea8e38

| Argument | Catalog type | Calling mode |
| --- | --- | --- |
| ts | TIMESTAMP | not recorded |

Declared return type: DATE. Variadic argument type: none declared.
Stability: CONSISTENT. Declared side effects: false.

### overload-269c0489cd4e6abf

Kind: scalar. Parameter order: catalog-order.

```text
last_day(ts: TIMESTAMP WITH TIME ZONE) → DATE
```

Link: /products/haybarn/functions/releases/duckdb-1.3.2/last_day/#overload-269c0489cd4e6abf

| Argument | Catalog type | Calling mode |
| --- | --- | --- |
| ts | TIMESTAMP WITH TIME ZONE | not recorded |

Declared return type: DATE. Variadic argument type: none declared.
Stability: CONSISTENT. Declared side effects: false.


## Guide recipes

No guide recipes.

## Engine catalog examples

Source examples may require additional data or extensions. Expressions are wrapped in SELECT; execution verification is not recorded.

Reported for: overload-6ffadfe49a6b2701, overload-2637a52348ea8e38, overload-269c0489cd4e6abf

```sql
SELECT last_day(TIMESTAMP '1992-03-22 01:02:03.1234');
```

## Runnable examples

Executed successfully in Haybarn WASM 1.5.5-rc3. Sample data and guide examples are separate from the original catalog.

```sql
SELECT last_day(TIMESTAMP '1992-03-22 01:02:03.1234');
```

## Additional DuckDB documentation

- [Date Functions](https://duckdb.org/docs/current/sql/functions/date#last_daydate)
- [Timestamp Functions](https://duckdb.org/docs/current/sql/functions/timestamp#last_daytimestamp)
- [Timestamp with Time Zone Functions](https://duckdb.org/docs/current/sql/functions/timestamptz#last_daytimestamptz)

## In other engines

### Apache Spark: months_between()

Uses last_day as part of a larger rewrite.

Apache Spark:

```sql
SELECT MONTHS_BETWEEN('1997-02-28 10:30:00', '1996-10-30')
```

Haybarn / DuckDB:

```sql
SELECT DATE_DIFF('MONTH', CAST('1996-10-30' AS DATE), CAST('1997-02-28 10:30:00' AS DATE)) + CASE WHEN DAY(CAST('1997-02-28 10:30:00' AS DATE)) = DAY(LAST_DAY(CAST('1997-02-28 10:30:00' AS DATE))) AND DAY(CAST('1996-10-30' AS DATE)) = DAY(LAST_DAY(CAST('1996-10-30' AS DATE))) THEN 0 ELSE (DAY(CAST('1997-02-28 10:30:00' AS DATE)) - DAY(CAST('1996-10-30' AS DATE))) / 31.0 END
```

Translation from [SQLGlot](https://github.com/tobymao/sqlglot/blob/3086608e6fd4c41c02dfba47171608d2b193fce2/tests/dialects/test_spark.py#L641).

### BigQuery



BigQuery:

```sql
SELECT LAST_DAY(CAST('2008-11-25' AS DATE), MONTH)
```

Haybarn / DuckDB:

```sql
SELECT LAST_DAY(CAST('2008-11-25' AS DATE))
```

Translation from [SQLGlot](https://github.com/tobymao/sqlglot/blob/3086608e6fd4c41c02dfba47171608d2b193fce2/tests/dialects/test_bigquery.py#L809).

### Presto



Presto:

```sql
SELECT LAST_DAY_OF_MONTH(CAST('2008-11-25' AS DATE))
```

Haybarn / DuckDB:

```sql
SELECT LAST_DAY(CAST('2008-11-25' AS DATE))
```

Translation from [SQLGlot](https://github.com/tobymao/sqlglot/blob/3086608e6fd4c41c02dfba47171608d2b193fce2/tests/dialects/test_presto.py#L810).

### SQL Server



SQL Server:

```sql
EOMONTH(GETDATE())
```

Haybarn / DuckDB:

```sql
LAST_DAY(CAST(CURRENT_TIMESTAMP AS DATE))
```

Translation from [SQLGlot](https://github.com/tobymao/sqlglot/blob/3086608e6fd4c41c02dfba47171608d2b193fce2/tests/dialects/test_tsql.py#L2147).

### Snowflake



Snowflake:

```sql
LAST_DAY(CAST('2023-04-15' AS DATE))
```

Haybarn / DuckDB:

```sql
LAST_DAY(CAST('2023-04-15' AS DATE))
```

Translation from [SQLGlot](https://github.com/tobymao/sqlglot/blob/3086608e6fd4c41c02dfba47171608d2b193fce2/tests/dialects/test_snowflake.py#L2799).

## Observed availability

| Snapshot | Observed | Overloads | JSON |
| --- | --- | --- | --- |
| haybarn-1.5.5-rc3 | present | 3 | [reference](/products/haybarn/functions/api/v1/haybarn-1.5.5-rc3/functions/last_day.json) |
| duckdb-1.5.5 | present | 3 | [reference](/products/haybarn/functions/api/v1/duckdb-1.5.5/functions/last_day.json) |
| duckdb-1.4.4 | present | 3 | [reference](/products/haybarn/functions/api/v1/duckdb-1.4.4/functions/last_day.json) |
| duckdb-1.3.2 | present | 3 | [reference](/products/haybarn/functions/api/v1/duckdb-1.3.2/functions/last_day.json) |

Engine catalog documentation is derived from MIT-licensed Haybarn and DuckDB. [Notices](/third-party-notices.txt).
