# date_diff — DuckDB 1.4.4

The number of partition boundaries between the timestamps

- Reference: /products/haybarn/functions/releases/duckdb-1.4.4/date_diff/
- JSON: /products/haybarn/functions/api/v1/duckdb-1.4.4/functions/date_diff.json
- Snapshot ID: duckdb-1.4.4
- Engine: duckdb v1.4.4
- Source ID: 6ddac802ff
- Binary SHA-256: 8d05bee013ea13d6b5d75272d7ddb52b3d6d9cdaf30d1a3e8e82d42757905182
- Captured: 2026-09-05T18:37:36.091Z
- Source: https://github.com/duckdb/duckdb/releases/tag/v1.4.4
- 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-75f9c2a81dd75276

Kind: scalar. Parameter order: catalog-order.

```text
date_diff(part: VARCHAR, startdate: DATE, enddate: DATE) → BIGINT
```

Link: /products/haybarn/functions/releases/duckdb-1.4.4/date_diff/#overload-75f9c2a81dd75276

| Argument | Catalog type | Calling mode |
| --- | --- | --- |
| part | VARCHAR | not recorded |
| startdate | DATE | not recorded |
| enddate | DATE | not recorded |

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

### overload-c28c2f1d09b6c3ee

Kind: scalar. Parameter order: catalog-order.

```text
date_diff(part: VARCHAR, startdate: TIME, enddate: TIME) → BIGINT
```

Link: /products/haybarn/functions/releases/duckdb-1.4.4/date_diff/#overload-c28c2f1d09b6c3ee

| Argument | Catalog type | Calling mode |
| --- | --- | --- |
| part | VARCHAR | not recorded |
| startdate | TIME | not recorded |
| enddate | TIME | not recorded |

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

### overload-204b19bb2ff96d79

Kind: scalar. Parameter order: catalog-order.

```text
date_diff(part: VARCHAR, startdate: TIMESTAMP WITH TIME ZONE, enddate: TIMESTAMP WITH TIME ZONE) → BIGINT
```

Link: /products/haybarn/functions/releases/duckdb-1.4.4/date_diff/#overload-204b19bb2ff96d79

| Argument | Catalog type | Calling mode |
| --- | --- | --- |
| part | VARCHAR | not recorded |
| startdate | TIMESTAMP WITH TIME ZONE | not recorded |
| enddate | TIMESTAMP WITH TIME ZONE | not recorded |

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

### overload-e0e4c6e5896f179c

Kind: scalar. Parameter order: catalog-order.

```text
date_diff(part: VARCHAR, startdate: TIMESTAMP, enddate: TIMESTAMP) → BIGINT
```

Link: /products/haybarn/functions/releases/duckdb-1.4.4/date_diff/#overload-e0e4c6e5896f179c

| Argument | Catalog type | Calling mode |
| --- | --- | --- |
| part | VARCHAR | not recorded |
| startdate | TIMESTAMP | not recorded |
| enddate | TIMESTAMP | not recorded |

Declared return type: BIGINT. 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-75f9c2a81dd75276, overload-c28c2f1d09b6c3ee, overload-204b19bb2ff96d79, overload-e0e4c6e5896f179c

```sql
SELECT date_diff('hour', TIMESTAMPTZ '1992-09-30 23:59:59', TIMESTAMPTZ '1992-10-01 01:58:00');
```

## Runnable examples

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

```sql
SELECT date_diff('hour', TIMESTAMPTZ '1992-09-30 23:59:59', TIMESTAMPTZ '1992-10-01 01:58:00');
```

## Additional DuckDB documentation

- [Date Functions](https://duckdb.org/docs/current/sql/functions/date#date_diffpart-startdate-enddate)
- [Time Functions](https://duckdb.org/docs/current/sql/functions/time#date_diffpart-starttime-endtime)
- [Timestamp Functions](https://duckdb.org/docs/current/sql/functions/timestamp#date_diffpart-starttimestamp-endtimestamp)

## In other engines

### Amazon Redshift: datediff()



Amazon Redshift:

```sql
DATEDIFF('day', a, b)
```

Haybarn / DuckDB:

```sql
DATE_DIFF('DAY', CAST(a AS TIMESTAMP), CAST(b AS TIMESTAMP))
```

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

### Apache Hive: datediff()



Apache Hive:

```sql
DATEDIFF(a, b)
```

Haybarn / DuckDB:

```sql
DATE_DIFF('DAY', CAST(b AS DATE), CAST(a AS DATE))
```

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

### Apache Spark: datediff()



Apache Spark:

```sql
DATEDIFF(a, b)
```

Haybarn / DuckDB:

```sql
DATE_DIFF('DAY', CAST(b AS DATE), CAST(a AS DATE))
```

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

### Apache Spark 2: datediff()



Apache Spark 2:

```sql
DATEDIFF(a, b)
```

Haybarn / DuckDB:

```sql
DATE_DIFF('DAY', CAST(b AS DATE), CAST(a AS DATE))
```

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

### BigQuery: date_diff()



BigQuery:

```sql
DATE_DIFF('2021-01-01', '2020-01-01', DAY)
```

Haybarn / DuckDB:

```sql
DATE_DIFF('DAY', CAST('2020-01-01' AS DATE), CAST('2021-01-01' AS DATE))
```

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

### Snowflake: datediff()



Snowflake:

```sql
DATEDIFF(YEAR, '2020-01-15', '2023-06-20')
```

Haybarn / DuckDB:

```sql
DATE_DIFF('YEAR', CAST('2020-01-15' AS DATE), CAST('2023-06-20' AS DATE))
```

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

## Observed availability

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

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